Python语言学习:用 python 访问toutiao.com的正确姿势
记录一下用 requests + BeautifulSoup 访问头条的过程
我要做的几件事情
- 访问 https://www.toutiao.com 得到必须要的cookie
- 拿到
cookie
访问 https://so.toutiao.com/search?dvpf=pc&source=input&keyword=句子迷&page_num=0&pd=synthesis - 拿到列表页
title
即算成功
准备工具
- 主要的工具:
requests/beautifulsoup4
- ua的伪装:
fake_useragent
pip install requests beautifulsoup4
pip install fake_useragent
import http.cookiejar as cookielib
import requests
import jsw_nx as nx
import random
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
jar = requests.cookies.RequestsCookieJar()
ua = UserAgent()
jar.set('ttwid', str(random.random()))
res = requests.get('https://so.toutiao.com/search?dvpf=pc&source=input&keyword=js.work&page_num={page}&pd=synthesis',
cookies=jar,
headers={'User-Agent': ua.ie})
doc = BeautifulSoup(res.text, "html.parser")
jar = res.cookies
print(jar.get_dict())
print(doc.title)
今日头条之”千人千面“
特别注意这一句代码,针对未登录用户,这个就是生成一个随机的 toutiao 用户id
如果这里登录用户,用上自己的
cookie
,则会展示不同的数据出来。
jar.set('ttwid', str(random.random()))
cookiejar 的常用方法
- set
- get
- update
import requests
jar = requests.cookies.RequestsCookieJar()
jar.set('ttwid', "the random string")
jar.update({"version": "1.0.0"})
print(jar.get('ttwid'))
print(jar.get_dict())
the random string
{'ttwid': 'the random string', 'version': '1.0.0'}