网页文章采集器(简易网页采集器今天来做一个简单的网页(图) )
优采云 发布时间: 2021-10-22 05:26)
简单网页采集器
今天来做一个简单的网页采集器,就是你输入你要查找的信息,让代码返回你要查找的信息对应的页面。
1. 理论知识 UA:User-Agent(请求载体的身份)反爬虫机制-UA检测:门户服务器网站会检测相应请求的载体身份,如果请求检测到携带者身份是某个浏览器,说明该请求是正常请求。但是,如果检测到请求的运营商身份不是基于某个浏览器,则说明该请求为异常请求(爬虫),服务器很可能拒绝该请求。反爬虫策略-UA伪装:让爬虫对应的请求载体身份伪装成某个浏览器
如何获取我们浏览器的 User-Agent?
例如,我使用 Firefox 浏览器:
使用F12打开开发者工具,用浏览器随意开始搜索。比如我搜索华晨宇,点击网络(有的浏览器是网络),随机选择一个请求,有你浏览器的User-Agent。
如图:
2. 实践带来真知
其实加一个UA伪装只是公式中的一个步骤,所以不要把UA伪装想得太难。
"""
TOPIC: 简易网页采集器
author: Blue
time: 2020-09-02
"""
import requests
if __name__ == "__main__":
# UA伪装: 将对应的User-Agent封装到一个字典中
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0'
}
# step1: 指定url
url = 'https://www.sogou.com/web?'
# 为了使采集器可以动态采集——处理url所携带的参数: 封装到字典中
keyword = input("请输入关键词: ")
param = {
'query': keyword
}
# step2: 对指定的url发起请求,对应的url是带参数的并且请求过程中处理了参数
response = requests.get(url, params=param, headers=headers)
# step3: 获取响应数据, text返回的是字符串形式的响应数据
page_text = response.text
filename = "./html/" + keyword + '.html'
with open(filename, 'w', encoding='utf-8') as fp:
fp.write(page_text)
print(filename, '保存成功!!')
这是未执行的代码。比如我比较喜欢华晨宇,所以在代码运行之后,输入华晨宇三个字:
生成的网页如下所示: