代理的使用

  • 代理网站
    • 快代理
    • goubanjia
    • 西词代理
  • 代理的分类属性
    • 高匿: 服务器看不到你的代理IP和你的真实IP
    • 匿名:看得到代理IP,看不到真实IP
    • 透明: 全都可以看到
  • 协议类型:
    • http: 如果访问的是http的网站,就使用这种
    • https: 访问https的网站需要使用

cookie的使用

  服务器记录客户端的一种状态

处理cookie的方式

  • 手动处理
  • 将网页抓包工具里面的cookie封装到请求头里面即可
    自动处理
    使用模块: import requests requests.Session()
    Session: 它是和requests一样可以发送get和post请求, 但是它在请求时可以自动携带cookie

 一、代理ip

import requests
from lxml import etree

url = "http://www.sogou.com/web?query=ip"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
}

page_text = requests.get(url=url, headers=headers, proxies={"http": "114.139.34.209:8118"}).text

with open('./ip.html', 'w', encoding="utf-8") as f:
    f.write(page_text)

二、携带cookie

# 爬取雪球网的新闻数据
import requests
from lxml import etree


url = "https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id=20362090&count=15&category=-1"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36",
    "Cookie": "device_id=24700f9f1986800ab4fcc880530dd0ed; aliyungf_tc=AQAAABK6n3cw7gAAVKJXcWhDmqkI22Bf; acw_tc=2760824415784502700746640ecdc6fa0beaa688bbb89de87aa682690a991f; xq_a_token=e50af02165b86c42cf428646aec7411e6404439f; xq_r_token=ee241f41de25b44579f4409da423f8e0e114e005; u=301578450273054; Hm_lvt_1db88642e346389874251b5a1eded6e3=1578450273; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1578450590"
}

page_json = requests.get(url=url, headers=headers).json()

print(page_json)

三、使用session自动处理cookie

# 爬取雪球网的新闻数据(使用Session自动处理cookie)
import requests
from lxml import etree

requests = requests.Session()

url = "https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id=20362090&count=15&category=-1"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
}

# 第一步: 向雪球网首页发送一次请求,获取cookie
requests.get(url="https://xueqiu.com", headers=headers)

# 第二步: 获取动态加载的新闻数据
page_json = requests.get(url=url, headers=headers).json()

print(page_json)