日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python爬取vip小说章节_怎么用python爬sf轻小说文库的vip章节小说

發(fā)布時(shí)間:2024/3/24 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬取vip小说章节_怎么用python爬sf轻小说文库的vip章节小说 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

展開(kāi)全部

你需要先購(gòu)買(mǎi)vip,不2113然的話是爬不了的,除非系5261統(tǒng)有漏洞,記4102住爬蟲(chóng)不是萬(wàn)能的

步驟一:研究1653該網(wǎng)站

打開(kāi)登錄頁(yè)面

進(jìn)入以下頁(yè)面 “”。你會(huì)看到如下圖所示的頁(yè)面(執(zhí)行注銷(xiāo),以防你已經(jīng)登錄)

仔細(xì)研究那些我們需要提取的詳細(xì)信息,以供登錄之用

在這一部分,我們會(huì)創(chuàng)建一個(gè)字典來(lái)保存執(zhí)行登錄的詳細(xì)信息:

1. 右擊 “Username or email” 字段,選擇“查看元素”。我們將使用 “name” 屬性為 “username” 的輸入框的值?!皍sername”將會(huì)是 key 值,我們的用戶名/電子郵箱就是對(duì)應(yīng)的 value 值(在其他的網(wǎng)站上這些 key 值可能是 “email”,“ user_name”,“ login”,等等)。

2. 右擊 “Password” 字段,選擇“查看元素”。在腳本中我們需要使用 “name” 屬性為 “password” 的輸入框的值?!皃assword” 將是字典的 key 值,我們輸入的密碼將是對(duì)應(yīng)的 value 值(在其他網(wǎng)站key值可能是 “userpassword”,“l(fā)oginpassword”,“pwd”,等等)。

3. 在源代碼頁(yè)面中,查找一個(gè)名為 “csrfmiddlewaretoken” 的隱藏輸入標(biāo)簽?!癱srfmiddlewaretoken” 將是 key 值,而對(duì)應(yīng)的 value 值將是這個(gè)隱藏的輸入值(在其他網(wǎng)站上這個(gè) value 值可能是一個(gè)名為 “csrftoken”,“ authenticationtoken” 的隱藏輸入值)。列如:“Vy00PE3Ra6aISwKBrPn72SFml00IcUV8”。

最后我們將會(huì)得到一個(gè)類(lèi)似這樣的字典:

payload = {

"username": "",

"password": "",

"csrfmiddlewaretoken": ""

}

請(qǐng)記住,這是這個(gè)網(wǎng)站的一個(gè)具體案例。雖然這個(gè)登錄表單很簡(jiǎn)單,但其他網(wǎng)站可能需要我們檢查瀏覽器的請(qǐng)求日志,并找到登錄步驟中應(yīng)該使用的相關(guān)的 key 值和 value 值。

步驟2:執(zhí)行登錄網(wǎng)站

對(duì)于這個(gè)腳本,我們只需要導(dǎo)入如下內(nèi)容:

import requests

from lxml import html

首先,我們要?jiǎng)?chuàng)建 session 對(duì)象。這個(gè)對(duì)象會(huì)允許我們保存所有的登錄會(huì)話請(qǐng)求。

session_requests = requests.session()

第二,我們要從該網(wǎng)頁(yè)上提取在登錄時(shí)所使用的 csrf 標(biāo)記。在這個(gè)例子中,我們使用的是 lxml 和 xpath 來(lái)提取,我們也可以使用正則表達(dá)式或者其他的一些方法來(lái)提取這些數(shù)據(jù)。

login_url = ""

result = session_requests.get(login_url)

tree = html.fromstring(result.text)

authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]

**更多關(guān)于xpath 和lxml的信息可以在這里找到。

接下來(lái),我們要執(zhí)行登錄階段。在這一階段,我們發(fā)送一個(gè) POST 請(qǐng)求給登錄的 url。我們使用前面步驟中創(chuàng)建的 payload 作為 data 。也可以為該請(qǐng)求使用一個(gè)標(biāo)題并在該標(biāo)題中給這個(gè)相同的 url 添加一個(gè)參照鍵。

result = session_requests.post(

login_url,

data = payload,

headers = dict(referer=login_url)

)

步驟三:爬取內(nèi)容

現(xiàn)在,我們已經(jīng)登錄成功了,我們將從 bitbucket dashboard 頁(yè)面上執(zhí)行真正的爬取操作。

url = ''

result = session_requests.get(

url,

headers = dict(referer = url)

)

為了測(cè)試以上內(nèi)容,我們從 bitbucket dashboard 頁(yè)面上爬取了項(xiàng)目列表。我們將再次使用 xpath 來(lái)查找目標(biāo)元素,清除新行中的文本和空格并打印出結(jié)果。如果一切都運(yùn)行 OK,輸出結(jié)果應(yīng)該是你 bitbucket 賬戶中的 buckets / project 列表。

Python

1

2

3

4

5

tree = html.fromstring(result.content)

bucket_elems = tree.findall(".//span[@class='repo-name']/")

bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]

print bucket_names

你也可以通過(guò)檢查從每個(gè)請(qǐng)求返回的狀態(tài)代碼來(lái)驗(yàn)證這些請(qǐng)求結(jié)果。它不會(huì)總是能讓你知道登錄階段是否是成功的,但是可以用來(lái)作為一個(gè)驗(yàn)證指標(biāo)。

例如:

Python

1

2

result.ok # 會(huì)告訴我們最后一次請(qǐng)求是否成功

result.status_code # 會(huì)返回給我們最后一次請(qǐng)求的狀態(tài)

就是這樣。

已贊過(guò)

已踩過(guò)<

你對(duì)這個(gè)回答的評(píng)價(jià)是?

評(píng)論

收起

總結(jié)

以上是生活随笔為你收集整理的python爬取vip小说章节_怎么用python爬sf轻小说文库的vip章节小说的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。