【Python开发】python使用urllib2抓取防爬取链接
来源:互联网 发布:windows美化大师电脑 编辑:程序博客网 时间:2024/05/01 10:24
前几天刚看完《Linux/Unix设计思想》,真是一本不错的书,推荐想提高自己代码质量的童鞋看一下,里面经常提到要以小为美,一个程序做好一件事,短小精悍,因此我也按照这种思想来写python技术点的文章,每个点都是一个函数,可以直接拿来用。
开始了
一般情况下用python的童鞋是不可避免的要写一些爬虫程序的,因此对python中urllib和urllib2都比较熟悉。而最基本的爬取方法就是:
大多数网站都不会禁止这样的爬取,但是有些网站都设定了禁止爬虫爬取,当然这样一方面是为了保护内容的版权,另一方面也是为了方式过多的爬虫造成网站流量的白白浪费。恶意爬取某一网站的内容当然是不道德的行为了,这里只讨论技术。
下面的函数通过urllib2来模拟浏览器访问链接爬取内容:
仅仅是模拟浏览器访问依然是不行的,如果爬取频率过高依然会令人怀疑,那么就需要用到urllib2中的代理设置了,如下:
要使用这个函数,当然你得找一些代理服务器了,这些资源网上有很多,关键字:http代理
关于网页抓取的方法其实还有其他的方法,技术是很灵活的东西,就看你怎么用。
开始了
一般情况下用python的童鞋是不可避免的要写一些爬虫程序的,因此对python中urllib和urllib2都比较熟悉。而最基本的爬取方法就是:
urllib.urlopen(url).read()
大多数网站都不会禁止这样的爬取,但是有些网站都设定了禁止爬虫爬取,当然这样一方面是为了保护内容的版权,另一方面也是为了方式过多的爬虫造成网站流量的白白浪费。恶意爬取某一网站的内容当然是不道德的行为了,这里只讨论技术。
下面的函数通过urllib2来模拟浏览器访问链接爬取内容:
def get_url_content(url): i_headers = {"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5",\ "Referer": 'http://www.baidu.com'} req = urllib2.Request(url, headers=i_headers) return urllib2.urlopen(req).read()
仅仅是模拟浏览器访问依然是不行的,如果爬取频率过高依然会令人怀疑,那么就需要用到urllib2中的代理设置了,如下:
def get_content_by_proxy(url, proxy): opener = urllib2.build_opener(urllib2.ProxyHandler({'http':proxy}), urllib2.HTTPHandler(debuglevel=1)) urllib2.install_opener(opener) i_headers = {"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5", \"Referer": 'http://www.baidu.com'} req = urllib2.Request(url, headers=i_headers) content = urllib2.urlopen(req).read() return content
要使用这个函数,当然你得找一些代理服务器了,这些资源网上有很多,关键字:http代理
关于网页抓取的方法其实还有其他的方法,技术是很灵活的东西,就看你怎么用。
0 0
- 【Python开发】python使用urllib2抓取防爬取链接
- 转载:python使用urllib2抓取防爬取链接
- python使用urllib2抓取防爬取链接
- python使用urllib2抓取网页
- [Python开发] python使用urllib2下载文件
- 使用 python urllib2 抓取网页时出现乱码的解决方案
- python urllib2使用细节
- python urllib2, urllib使用
- Python-urllib2的使用
- Python:urllib2使用总结
- python---urllib2使用
- python---urllib2使用代理
- Python网页抓取urllib,urllib2,httplib[1]
- Python网页抓取urllib,urllib2,httplib[2]
- Python网页抓取urllib,urllib2,httplib[3]
- Python网页抓取urllib,urllib2,httplib[1]
- Python网页抓取urllib,urllib2,httplib[2]
- Python网页抓取urllib,urllib2,httplib[3]
- java 单例模式
- 编译
- 出现This version of the rendering library is more recent than your version of ADT plug-in. Please upda
- ViewSwitcher
- 用Maven插件生成Mybatis代码
- 【Python开发】python使用urllib2抓取防爬取链接
- C语言的NULL和C++的NULL不同
- 用c++编写一个简单的登录系统
- 交换数组内容
- JavaEE---页面内容压缩gzip演示
- HashMap(JDK1.8)源码剖析
- 20160926 - 热爱
- Android通过JAVA将H264编码成MP4
- 管理linux下软件的配置文件dotfile(rc files)