博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python爬虫——【3】requests简单实用之简易网页采集器
阅读量:3942 次
发布时间:2019-05-24

本文共 1235 字,大约阅读时间需要 4 分钟。

简易网页采集器

今天来做一个简单的网页采集器,即你输入想要查找的信息,让代码给你返回想要查找的信息对应的页面。

1. 理论知识

  1. UA: User-Agent(请求载体的身份标识)
  2. 反爬机制——UA检测: 门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求是一个正常的请求。但如果检测到请求的载体身份标识不是基于某一款浏览器的,则表示该请求为不正常请求(爬虫),则服务器端很有可能拒绝该次请求。
  3. 反反爬策略——UA伪装: 让爬虫对应的请求载体身份标识伪装成某一款浏览器

那怎么获取我们浏览器的User-Agent呢?

举个例子,我用的是火狐浏览器:

  1. 用F12打开开发者工具
  2. 用浏览器随意发起一个搜索,比如我搜索华晨宇
  3. 点击网络(有些浏览器是Network)
  4. 随意选中一条请求,里面就有你浏览器的User-Agent

如图:

在这里插入图片描述

2. 实践出真知

其实加个UA伪装也只是公式里的一步而已,所以不要把UA伪装想得特别难

"""TOPIC: 简易网页采集器author: Bluetime: 2020-09-02"""import requestsif __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, '保存成功!!')

这是未执行的代码,比如我比较喜欢华晨宇,所以我现在代码运行后,输入华晨宇三个字:

在这里插入图片描述得到的网页是这样的:
在这里插入图片描述

转载地址:http://rbiwi.baihongyu.com/

你可能感兴趣的文章
jquery事件重复绑定解决办法
查看>>
jQuery.extend 函数详解
查看>>
mysqli_query和mysql_query有何区…
查看>>
mysqli->multi_query()多条语句的…
查看>>
php引用(&)变量引用,函数引用,对…
查看>>
[转]yii执行流程(一 目录文…
查看>>
无需重启服务器让系统环境变量生效…
查看>>
配置CakePHP
查看>>
JQuery中$.ajax()方法参数详…
查看>>
JS 简易滚动条
查看>>
PHP __call()方法
查看>>
JS中的call()和apply()方法
查看>>
慎用PHP$_REQUEST数组
查看>>
详细解释PHP中header
查看>>
php中的迭代器Iterator的具体用法
查看>>
mysql操作技巧随笔--链表删除数据
查看>>
MySql在建立索引优化时需要…
查看>>
Mysql建表和索引使用规范
查看>>
mysql 队列 实现并发读
查看>>
MYSQL千万级数据量的优化方法积累
查看>>