1、使用代理ip和普通requests.get请求抓取页面流程一样,只是多了个参数proxies.
- http://www.goubanjia.com/ 找代理IP,注意http,https,选与目标网址一样的协议。
- proxies字典格式的
import requests
url='https://www.baidu.com/s?wd=ip&ie=utf-8'
proxies={ "https":"218.60.8.99:3129" }
headers={ "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" }
response=requests.get(url=url,proxies=proxies,headers=headers)
with open('baiduip.html','w',encoding='utf-8') as f: f.write(response.text)
2、使用session抓取需要登陆之后才能看到的页面数据
- 获取session对象:session=requests.session()
- session.post请求登陆url存储session信息
- session.get请求获取登陆之后的个人页面
以豆瓣为例:
import requests # 先用session登陆获取存储session session=requests.session() login_url='https://accounts.douban.com/j/mobile/login/basic'
data={ 'ck':'', 'name':'', 'password':'', 'remember':'false', 'ticket':''
}
headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
login_response=session.post(url=login_url,data=data,headers=headers)
# 再用session获取想要的页面 https://www.douban.com/people/193627830/ url='https://www.douban.com/people/1230/' response=session.get(url=url,headers=headers) with open('doubanlogin.html','w',encoding='utf-8')as f: f.write(response.text)
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试