目的:熟悉并使用urllib,了解实际爬取时需要注意的事项
以爬取拉勾网为例
进入拉勾网,搜索python,拿到上面的url
上代码
from urllib import request,parse
url = "https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput="
headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) '
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Mobile Safari/537.36',
'Referer':'https://www.lagou.com/'
}
data = {
'first':'true',
'pn':1,
'kd':'python'
}
resp = request.Request(url,headers=headers,data=parse.urlencode(data).encode('utf-8'),
method='GET')
result = request.urlopen(resp)
print(result.read().decode('utf-8'))
因为拉钩具有一定程度的反爬虫机制,以它为例讲解注意事项
一:定制头部信息,"User-Agent"可以帮助爬虫伪装成浏览器请求页面,如果你没有"Referer",可能会这样:
或者出现提醒
“您操作太频繁,请稍后再试”
如果你定制了这些,依旧无法爬取,在网页任意位置右键点击检查后,来到这里
继续添加头部信息,或者更换ip和cookie
二:
当你爬取失败时,请一定检查该网站是get请求还是post请求
三:
data信息参照于headers信息
四:
如果爬取下来的是乱码,就需要借助于encode和decode
五:
此时爬取的页面可读性极低,也很难获取重要信息,后续会了解到信息提取的几种方式,在茫茫千万英文与中文与符号的海洋中获取堪比黄金的信息