爬虫-初试
1.requests安装
pip安装库 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
2.获取搜狗网页时的处理小反爬
import requests # 地址栏里的链接都是get请求 url = "https://www.sogou.com/web?query=周杰伦" # 这个时候会报错,显示非正常请求,处理小反扒:需要添加信任header:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) # Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3883.400 QQBrowser/10.8.4559.400 header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 ""Safari/537.36 Core/1.70.3883.400 QQBrowser/10.8.4559.400 "} resp = requests.get(url, headers=header) # 页面源代码 print(resp.text)
resp.close() # 记得关闭
3.百度翻译
import requests # url通过抓包工具(f12),当输入dog的时候,页面会有一个一个请求,找到它的Header,里面就有,并且最底下formData的形式,就是代码下面post请求里面的data url = "https://fanyi.baidu.com/sug" s = input("请输入你要翻译的英文单词:\n") dat = { "kw": s } # 发送请求 resp = requests.post(url, data=dat) # 将服务器里面返回的内容转成json print(resp.json())
resp.close() # 记得关闭
4.豆瓣电影
import requests # 打开f12,点击netWork抓包工具,XHR一般都是ajax请求,获取数据的,预览(preview)找到数据在那个,url ?后面的是参数 url = "https://movie.douban.com/j/chart/top_list" # 当url很长时,考虑封装参数 # 通过滑动页面,发现start值在改变,那么这样就可以获取更多的数据 parm = { "type": 24, "interval_id": "100:90", "action": "", "start": 0, "limit": 20, } headers = { "User-Agent": "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/77.0.3865.120 Safari/537.36 Core/1.77.97.400 QQBrowser/10.9.4621.400 " } # 发送请求时,会自动拼成刚开始在header里面看到的那样 resp = requests.get(url=url, params=parm, headers=headers) print(resp.json())
resp.close() # 记得关闭
# 这里没有headers时实际上没有爬取到,要一个个去尝试原因 """ 1.首先考虑User-Agent 代理 查看一下当前的默认代理:print(resp.request.headers) {'User-Agent': 'python-requests/2.27.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} 准备header(在刚才的那个有数据的Headers里面找User-Agent): User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 Core/1.77.97.400 QQBrowser/10.9.4621.400 2. """