发个脚本吧。因为一般百度的超链接爬下来都是未解密的,导致数据用处不大,解密后就有很多用处了
下面是代码:做了两个版本。第二个速度和稳定性更好
1、
import requests
zhen = open('zhen.txt','w')
for i in open('url.txt'):
r = requests.get(i.rstrip())
zhen.write(r.url+'\n')
2、
import requests
zhen = open('zhen.txt','w')
for i in open('url.txt'):
header = requests.head(i.rstrip()).headers
r = header['location']
zhen.write(r +'\n')
url.txt放需要解密的url。结束后会生成zhen.txt。里面就是解密过的了。要注意解密的过程中会因为某个url加载慢,url不存在等错误停止解密,需要重新再来几次才可以。大家可以自己写可以跳过错误或者自动重来的脚本。
3、本身解密就是为了爬取百度的结果,平时是用火车头抓取,python解密的,今天突然测试出让火车头在抓取过程中就可以解密的方法了。原理是抓取后的链接,后面加上&wd=就会进入跳转模式,跳转模式里是有目标网页的,截取出来就可以了。下面放设置
4.唔知大神优化了下,发了个防报错的脚本,下面摘录下
def gethtml(url,Device=None,method=None):
# request URL请求函数
if Device ==None:
UserAgent = ''
elif Device =='Mobile':
UserAgent = ''
headers = {
'User-Agent':UserAgent,
}
try:
htmlobj = requests.get(url,headers=headers,all_redirects=False,timeout =1)
except:
traceback.print_exc()
else:
if htmlobj.status_code == 200:
return htmlobj.text
分享到: