网页爬虫一些代码模板:
①针对post的请求为,参数为json格式的。在浏览器network调试时,有如下一栏
Request Payload
针对该种数据,与form data提交不同。需要将数据转换为json格式的,同时请求头部也要更改内容类型为json
头部:
headers={
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36’,
‘Content-Type’: ‘application/json’
}
其中json.dumps(data) 参数data为post form data类型的数据一样,都为字典类型。
发起post请求的例子:
response=requests.post(login_url,headers=headers,data=json.dumps(data),cookies=cookies)
②不使用session对话类型,保持cookies的方法。
首先进行requests.get或者.post请求,返回一个对象,存入response中
通过如下两行即可。
#更新cookies
cookietjar=response.cookies
cookies=requests.utils.dict_from_cookiejar(cookiejar)
print打印cookies为如下样式的。
然后在下一个要保持的requests请求参数中,添加cookies=cookies即可。
如下:
response=requests.post(login_url,headers=headers,data=json.dumps(data),cookies=cookies)
③文件写入本地的方法:
path为’./xx.xx’ 为写入当前目录下,如果当前目录没有要写入的文件名,则创建一个。
1.返回为text/html类型的文件:
with open(’./xxx.html’, ‘w’, encoding=‘utf-8’) as fp:
fp.write(response.text)
2.json文件:
json_obj=response.json()
file=open(’./xxx.json’,‘w’,encoding=‘utf-8’)
json.dump(json_obj,fp=file,ensure_ascii=False)
3.二进制文件,比如图片什么的
with open(path,‘wb’) as f: #验证码保存本地
f.write(response.content)
f.close()
④shr1加密
import hashlib
sha1 = hashlib.sha1()
data = ‘123456’
sha1.update(data.encode(‘utf-8’))
sha1_data = sha1.hexdigest()
print(sha1_data)