user agent:爬取电影短评(上)

1.获取网页的HTML代码

import requestsurl="https://xxxxxxxxxxxxxx"response=requests.get(url)print(response)

想要获得网页的短评,就要获取他的HTML代码,

我们要向服务器发送请求,服务器返回的就是HTML代码,

但是这样状态码是418,表示 我们的爬虫被发现了;

由于我们用的是 requests 发起的请求,而不是浏览器,所以我们需要伪装成 Chrome 浏览器。

在网页中请求头和响应头信息保存在变量 headers 中,查看请求头或响应头的方法为:

1. 使用 响应消息.request.headers 就能查看请求头中的信息。
2. 使用 响应消息.headers 就能查看响应头中的信息。

2.User-Agent样式

那么怎么伪装成浏览器发出请求呢?接下来,学习浏览器中 User-Agent 的样式。

(1)设置请求头

请求头需要以键值对的方式进行设置

(2)找到对应的值

复制浏览器的 User-Agent 的值,粘贴到代码中,以字典key-value的形式赋值给字典 headers。

(3)添加参数的值

在 requests.get() 中添加 headers 参数,其参数值为字典 headers 。

3.解析网页

class 属性的作用是用来给标签分类。class="short"也就代表着,这里标签的内容是短评。

由于 find_all() 返回的是一个列表,我们不能直接访问 .string 属性。

使用 for 循环遍历列表 content_all,访问 .string 获取每个节点中标签的内容,赋值给变量 contentString。

由于 class 在 Python 里是一个关键字 ,所以后面需要加一个下划线,即 class_="short"。

4.完整实现

# 使用import导入requests模块import requests# 从bs4中导入BeautifulSoupfrom bs4 import BeautifulSoupurl = "https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"# 将User-Agent以字典键对形式赋值给headersheaders = {"User-Agent": "xxxxxxxxxxx"}response=requests.get(url,headers=headers)# 将服务器响应内容转换为字符串形式,赋值给htmlhtml = response.text# 使用BeautifulSoup()传入变量html和解析器lxml,赋值给soupsoup = BeautifulSoup(html, "lxml")# TODO 使用find_all()查询soup中class="short"的节点,赋值给content_allcontent_all=soup.find_all(class_="short")# TODO for循环遍历content_allfor content in content_all: # TODO 获取每个节点标签的内容,赋值给contentString contentString=content.string # TODO 使用print输出contentString print(contentString)

相关推荐

相关文章