了解这8个常用技巧后,让你零基础学Python爬虫更简单!
python作为一门高级编程语言,它的定位是优雅、明确和简单。我学用python差不多一年时间了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的验证码识别的脚本。
这些脚本有一个共性,都是和web相关的,总要用到获取链接的一些方法,故累积了不少爬虫抓站的经验,在此总结一下,那么以后做东西也就不用重复劳动了。
1、基本抓取网页
get方法
import urllib2
url = “http://www.baidu.com”
response = urllib2.urlopen(url)
print response.read()
post方法
import urllib
import urllib2
url = “http://abcde.com”
form = {“name”:”abc”,”password”:”1234″}
form_data = urllib.urlencode(form)
request = urllib2.Request(url,form_data)
response = urllib2.urlopen(request)
print response.read()
2.使用代理服务器
这在某些情况下比较有用,比如IP被封了,或者比如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()
3.Cookies处理
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,那就加入proxy_support然后operner改为
opener=urllib2.build_opener(proxy_support, cookie_support, urllib2.HTTPHandler)
4.伪装成浏览器访问
某些网站反感爬虫的到访,于是对爬虫一律拒绝请求。这时候我们需要伪装成浏览器,这可以通过修改http包中的header来实现:
headers = {
“User-Agent”:”Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6″
}
req = urllib2.Request(
url = “http://secure.verycd.com/signin/*/http://www.verycd.com/”,
data = postdata,
headers = headers
)
5、页面解析
对于页面解析最强大的当然是正则表达式,这个对于不同网站不同的使用者都不一样,就不用过多的说明。