Python网络爬虫:伪装浏览器

本文介绍了Python网络爬虫如何处理HTTP超时和自动跳转,以及如何伪装成浏览器进行爬取。通过设置超时和异常处理确保爬虫的稳定性,利用正则表达式解析HTML中的meta刷新实现跳转。同时,讲解了在GET请求中添加User-Agent头部,模拟浏览器行为,以避免被网站识别为爬虫。最后,展示了Python文件操作的简单示例,用于保存爬取的数据。
摘要由CSDN通过智能技术生成

添加超时跳过功能

首先, 我简单地将

urlop = urllib.request.urlopen(url)

改为

urlop = urllib.request.urlopen(url, timeout = 2)

运行后发现, 当发生超时, 程序因为exception中断. 于是我把这一句也放在try … except 结构里, 问题解决.支持自动跳转在爬 http://baidu.com 的时候, 爬回来一个没有什么内容的东西, 这个东西告诉我们应该跳转到 百度一下,你就知道 . 但是我们的爬虫并不支持自动跳转, 现在我们来加上这个功能, 让爬虫在爬 baidu.com 的时候能够抓取 百度一下,你就知道 的内容.首先我们要知道爬 http://baidu.com 的时候他返回的页面是怎么样的, 这个我们既可以用 Fiddler 看, 也可以写一个小爬虫来抓取. 这里我抓到的内容如下, 你也应该尝试一下写几行 python 来抓一抓.

<html>
<meta http-equiv=”refresh” content=0;url=http://www.baidu.com/>
</html>

看代码我们知道这是一个利用 html 的 meta 来刷新与重定向的代码, 其中的0是等待0秒后跳转, 也就是立即跳转. 这样我们再像上一次说的那样用一个正则表达式把这个url提取出来就可以爬到正确的地方去了. 其实我们上一次写的爬虫已经可以具有这个功能, 这里只是单独拿出来说明一下 http 的 meta 跳转.伪装浏览器正规军前面几个小内容都写的比较少. 现在详细研究一下如何让网站们把我们的Python爬虫当成正规的浏览器来访. 因为如果不这么伪装自己, 有的网站就爬不回来了. 如果看过理论方面的知识, 就知道我们是要在 GET 的时候将 User-Agent 添加到header里.如果没有看过理论知识, 按照以下关键字搜索学习吧 :DHTTP 报文分两种: 请求报文和响应报文请求报文的请求行与首部行GET, POST, HEAD, PUT, DELETE 方法我用 IE 浏览器访问百度首页的时候, 浏览器发出去的请求报文如下:GET 百度一下,你就知道 HTTP/1.1

Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US,en;q=0.8,zh-Hans-CN;q=0.5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值