今天主要学习的是requests这个包,现在还没有认识到这个包有多牛逼,反正老师说强就是强。第一部分使用pip安装requests,学习了一个简单的反爬机制,UA处理,从开发者选项中抄一下浏览器的UA设置,保存成字典,通过headers参数传递进入requests.get中,最后打印一下resp.text.
#这里要求安装requests包,推荐使用清华源: #pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package(这里换成你想要安装的包) import requests query=input("输入一个你喜欢的明星:") #f{}里面的f代表一个占位符,表示在{}里面放置的是字符串 url=f“你的url” headers={ "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.62" } resp=requests.get(url,headers=headers)#增加headers,简单处理了一个反爬机制 print(resp) print(resp.text)
第二部分:主要学习的是post请求下的爬取处理
这里需要我们在EDGE或者chrome浏览器中去到payload(载荷)查看关键字
最后就是打印的时候使用json()格式,方便我们查看打印结果
import requests url="翻译网址url" str=input("请输入你想要翻译的单词或句子:") #在post请求里面,需要到payload里面查看关键词keyword #而在get请求中,在payload里面查看query string parameters data={ "kw":str } #发送post请求,发送的数据必须放在字典中,然后用data参数进行传递 resp=requests.post(url,data=data) print(resp.json())#将服务器返回的内容直接处理成json格式--字典形式
第三部分:主要是学习传参,之前学习过在UA设置里面使用headers进行传参。当我们的url参数过长时,可以把?后面的内容写进data,进行传参。在get请求中去到payload复制相关参数。然后也是简单加上一个UA处理
import requests url="某个电影排行榜url" #url数据过长,重新封装参数 params={ "type": "24", "interval_id": "100:90", "action":"", "start": "0", "limit": "70" } headers={ "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.62" } #在post请求中,使用的是data参数,而get请求中使用的是params参数 resp=requests.get(url,params=params,headers=headers) print(resp.request.url) print(resp.json())