爬虫-使用代理ip,使用session

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)

你可能感兴趣的:(爬虫)