您的位置:新闻资讯 >文章内容
Python爬虫需要注意的技巧
来源:本站 作者:jinglingdaili 时间:2019-02-14 18:21:40

网络爬虫的要求有几点


一、一个好的网页解释器,python推荐BeautifulSoup,java推荐htmlparser。


二、良好的性能,不能太慢,当遇上网络状况不大好的时候,慢更受不了,所以通常需要同时启动N个网络爬虫进行工作。使用队列可以很好解决这个问题。优化性能常见解决方案------队列辅助多线程。


三、稳定性,容错性。网络本来就存在不稳定性,连接超时,连接重置等是常见的不稳定现象,网络爬虫程序要充分妥当地处理这些问题,保证爬虫输出结果的完整性。


Python爬虫需要注意的技巧


技巧


一、基本的抓取


import urllib2

content=urllib2.urlopen("http://baidu.com").read()


二、使用代理服务器

一般,抓去大量数据时,最好使用代理。防止IP被封,下载次数受限等。


import urllib2 

proxy_support=urllib2.ProxyHandler({'http':'http://XX.XX.XX.XX:XXXX'})

opener=urllib2.build_opener(proxy_support,urllib2.HTTPHandler)

urllib2.install_opener(opener) 

content=urllib2.urlopen('http://XXXX').read()


三、需要登录时


1. 使用cookie


import urllib2,cookielib 

cookie_support=urllib2.HTTPCookieProcessor(cookielib.CookieJar())

opener=urllib2.build_opener(cookie_support,urllib2.HTTPHandler)

urllib2.install_opener(opener) 

content=urllib2.urlopen('http://XXXX').read()


若想同时使用cookie和代理,则opener换成

opener=urllib2.build_opener(proxy_support,cookie_support,urllib2.HTTPHandler)


2. 处理表单


一般通过post方式提交数据,可以利用F12开发者工具分析提交的数据包,然后构建相应的post数据发送http请求


3. 伪装成浏览器


某些网站反感爬虫,拒绝请求。可以通过修改http包的header来伪装


headers={

‘User-Angent’: 'Mozilla/5.0(Windows;U;WindowsNT6.1;en-US;rv:1.9.1.6)Gecko/20091201Firefox/3.5.6'

}

req=urllib2.Request(

    url="http://...",

    data=postData,

    headers=headers

)


4. 反盗链


header里面,referer站点是不是他自己,所以我们只需要把headers的referer改成该网站即可。

相关文章内容简介
在线咨询
微信公众号

微信公众号

回到顶部