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

优采云 发布时间: 2022-02-14 14:38

  python网页数据抓取(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编码的内容那是需要翻译的,所以可以伪造Request body,比如:

  您还可以使用 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人工客服


线