python

Python爬蟲:爬取需要登入的網站(附爬蟲影片教程)

不少夥伴學爬蟲,這就出一期Python爬蟲教程,文末總結的有影片教程,自己按需學習哈!

爬蟲在採集網站的過程中,部分資料價值較高的網站,會限制訪客的訪問行為。這種時候建議透過登入的方式,獲取目標網站的cookie,然後再使用cookie配合代理IP進行資料採集分析。

1 使用表單登陸

這種情況屬於post請求,即先向伺服器傳送表單資料,伺服器再將返回的cookie存入本地。

  1.     #! -*- encoding:utf-8 -*-
  2.     import requests
  3.     import random
  4.     import requests.adapters
  5.  
  6.     # 要訪問的目標頁面
  7.     targetUrlList = [
  8.         "https://httpbin.org/ip",
  9.         "https://httpbin.org/headers",
  10.         "https://httpbin.org/user-agent",
  11.     ]
  12.  
  13.     # 代理伺服器(產品官網 www.16yun.cn)
  14.     proxyHost = "t.16yun.cn"
  15.     proxyPort = "31111"
  16.  
  17.     # 代理隧道驗證資訊
  18.     proxyUser = "username"
  19.     proxyPass = "password"
  20.  
  21.     proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
  22.         "host": proxyHost,
  23.         "port": proxyPort,
  24.         "user": proxyUser,
  25.         "pass": proxyPass,
  26.     }
  27.  
  28.     # 設定 http和https訪問都是用HTTP代理
  29.     proxies = {
  30.         "http": proxyMeta,
  31.         "https": proxyMeta,
  32.     }
  33.  
  34.     # 訪問三次網站,使用相同的Session(keep-alive),均能夠保持相同的外網IP
  35.     s = requests.session()
  36.  
  37.     # 設定cookie
  38.     cookie_dict = {"JSESSION":"123456789"}
  39.     cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
  40.     s.cookies = cookies
  41.  
  42.     for i in range(3):
  43.         for url in targetUrlList:
  44.             r = s.get(url, proxies=proxies)
  45.             print r.text

Python爬蟲:爬取需要登入的網站(附爬蟲影片教程)

 

2 使用cookie登陸

使用cookie登陸,伺服器會認為你是一個已登陸的使用者,所以就會返回給你一個已登陸的內容。因此,需要驗證碼的情況可以使用帶驗證碼登陸的cookie解決。

  1. response_captcha = requests_session.get(url=url_login, cookies=cookies)
  2. response1 = requests.get(url_login) # 未登陸
  3. response2 = requests_session.get(url_login) # 已登陸,因為之前拿到了Response Cookie!
  4. response3 = requests_session.get(url_results) # 已登陸,因為之前拿到了Response Cookie!

若存在驗證碼,此時採用response = requests_session.post(url=url_login, data=data)是不行的,做法應該如下:

 

  1. response_captcha = requests_session.get(url=url_login, cookies=cookies)
  2. response1 = requests.get(url_login) # 未登陸
  3. response2 = requests_session.get(url_login) # 已登陸,因為之前拿到了Response Cookie!
  4. response3 = requests_session.get(url_results) # 已登陸,因為之前拿到了Response Cookie!

Python爬蟲全套影片(最經典)

網盤連結:https://pan.baidu.com/s/1hb4VoF9fyTqUooUd51ei8g 提取碼: 1e

2020全新 Python爬蟲技術快速上手

網盤連結:https://pan.baidu.com/s/1yYht8cPCX4c9e6GAt4Ss2g 提取碼: wr

爬蟲基本會學到的,我都總結下來了,大家自己按需學習就行,網盤提取碼,不能放這裡,

大家可以留言回覆:爬蟲,找我領取!或者直接加 “615919621”,Python分享學習群,教程都有,大家按需在群裡找教程。

希望影片教程大家不要過分傳播甚至交易行為!整理不易!

本文章已修改原文用詞符合繁體字使用者習慣使其容易閱讀

版權宣告:此處為CSDN博主「千鋒教育官方部落格」的原創文章,依據CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。

原文連結:https://blog.csdn.net/GUDUzhongliang/article/details/109511088