爬虫02
requests入门
pip install requests
使用request简化代码,且加入请求头进行小反爬
请求方式是get:
# 如果想换关键词搜索而不用每次改代码
import requests
query = input("输入任一关键词:")
url = f'https://www.sogou.com/web?query={query}' # f string就是把某一个变量塞到字符串中去
dic = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.27"
}
response = requests.get(url, headers=dic) # 处理了一个小小的反爬,不带User-Agent会有一个程序自动化的User-Agent跟过去,会被拦截,加上一个请求头headers伪装得更像浏览器
print(response)
print(response.text) # 拿到页面源代码
response.close() # 关掉response
爬虫要得知URL 请求方式 参数 就成功一大半了
请求方式是post:
# 请求方式是post
import requests
url = "https://fanyi.baidu.com/sug"
s = input("输入想要翻译的英文单词:")
dat = {
"kw": s
}
# 发生post请求 发送的数据必须放在字典中,通过data参数进行传递
response = requests.post(url, data=dat)
print(response.json()) # 将服务器返回的内容直接处理成json() 即dict字典
response.close() # 关掉response
POST请求是Form Data 发送的数据必须放在字典中,通过data参数进行传递
GET请求是Query String Parameters
例:
URL中找问号?,前面的都是地址,?后面是参数
如果发现发送的get请求,参数很长,可以考虑第二种方式封装get请求的参数
例:https://movie.douban.com/j/chart/top_list?type=24&interval_id=100:90&action=&start=0&limit=20
可以把网址中 ?type=24&interval_id=100:90&action=&start=0&limit=20 扔到字典中封装
import requests
url = "https://movie.douban.com/j/chart/top_list"
# 重新封装参数 把Query String Parameters中的一堆扔进来,加入双引号逗号后缩进封装起来
param = {
"type": "24",
"interval_id": "100:90",
"action": "",
"start": 0,
"limit": 20,
}
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.27"
}
resp = requests.get(url=url, params=param, headers=headers)
print(resp.json())
resp.close() # 关掉resp
如果爬虫不好使,第一个就去找User-Agent 可以resp.requests.headers直接运行抓出来
爬完人家的数据之后记得response.close() # 关掉response
不关的话访问次数过多容易堵死

浙公网安备 33010602011771号