一、前言
前几天在Python白银交流群【小白邢汝嘉】问了一个Python
基础的问题,提问截图如下:
代码如下:
from pyquery import PyQuery as pq
import requests
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
url = "https://s.weibo.com/top/summary?cate=socialevent"
response = requests.request('get', url, headers=headers)
content_all = response.content.decode('utf-8')
doc = pq(content_all) # 实例化对象
items = doc('tbody') # 获取表格中内容
content=items('.td-02').items() # 获取热搜单元格
for c in content:
name=c('a').text() # 获取链接中的文本
print(name)
报错截图如下:
这里【甯同学】指出编码问题,如下所示:
不过看上去还是报错。后来【瑜亮老师】和【猫药师Kelly】指出需要把浏览器里面的cookies
加进headers
里面。
不过粉丝初学者,不太会加这个东东,加上去之后,又少逗号啥的,这里【dcpeng】直接给了一份正确的代码,如下所示:
from pyquery import PyQuery as pq
import requests
headers = {
"User-Agent": "Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/63.0.3239.132Safari/537.36",
"Cookie": '你的cookie值'
}
url = "https://s.weibo.com/top/summary?cate=socialevent"
response = requests.request('get', url, headers=headers)
content_all = response.content
doc = pq(content_all) # 实例化对象
items = doc('tbody') # 获取表格中内容
content = items('.td-02').items() # 获取热搜单元格
for c in content:
name = c('a').text() # 获取链接中的文本
print(name)
运行之后,即可得到正确的结果: