php 爬虫抓取网页数据(Python內建使用urllib.request获取网页urllib是什么意思?)

优采云 发布时间: 2021-11-05 09:01

  php 爬虫抓取网页数据(Python內建使用urllib.request获取网页urllib是什么意思?)

  1. 使用 urllib.request 获取网页

  urllib 是 Python 中的内置 HTTP 库。使用 urllib,您可以通过非常简单的步骤高效地使用 采集 数据;配合Beautiful等HTML解析库,可以为采集网络数据编写大型爬虫;

  注:示例代码采用Python3编写;urllib 是 Python2 中 urllib 和 urllib2 的组合,Python2 中的 urllib2 对应于 Python3 中的 urllib.request

  简单的例子:

  2. 伪造请求头信息

  有时爬虫发起的请求会被服务器拒绝。这时,爬虫需要伪装*敏*感*词*类用户的浏览器。这通常是通过伪造请求头信息来实现的,例如:

  3. 伪造的请求体

  爬取某些网站时,需要POST数据到服务器,然后需要伪造请求体;

  为了实现有道词典的在线翻译脚本,在Chrome中打开开发工具,在Network下找到方法为POST的请求。观察数据,可以发现请求体中的'i'是需要翻译的URL编码内容,因此可以伪造请求体,如:

  您还可以使用 add_header() 方法来伪造请求头,例如:

  4. 使用代理IP

  为了避免爬虫过于频繁导致IP被封的问题采集,可以使用代理IP,例如:

  注意:使用爬虫过于频繁地访问目标站点会占用大量服务器资源。大型分布式爬虫可以爬取一个站点甚至对该站点发起DDOS攻击;因此,您在使用爬虫爬取数据时应合理安排爬取。频率和时间;如:服务器比较空闲时(如清晨)进行爬取,完成一个爬取任务后暂停一段时间等;

  5. 检测网页的编码方式

  虽然大部分网页都是UTF-8编码的,但有时你会遇到使用其他编码方式的网页,所以必须了解网页的编码方式才能正确解码抓取到的页面;

  chardet是python的第三方模块,使用chardet可以自动检测网页的编码方式;

  安装chardet:pip install charest

  用:

  6. 获取重定向链接

  有时网页的某个页面需要在原创URL的基础上重定向一次甚至多次才能最终到达目标页面,因此需要正确处理重定向;

  通过requests模块的head()函数获取跳转链接的URL,如

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线