簡體   English   中英

使用python從網站抓取數據

[英]Crawl data from a website using python

我想從網站上抓取一些數據。 要手動訪問目標數據,我需要登錄,然后單擊一些按鈕以最終獲得目標html頁面。 目前,我正在使用Python request庫來模擬此過程。 我這樣做是這樣的:

ss = requests.session()
#log in
resp = ss.post(url, data = (('username', 'xxx'), ('password', 'xxx')))
#then send requests to the target url
result = ss.get(taraget_url)

但是,我發現最終請求沒有返回我想要的東西。

所以我改變了方法。 我下載了所有網絡流量,並查看了最后一個請求的標頭和cookie。 我發現這里有一些內容在每次登錄會話中都是不同的,例如sessionid和其他一些變量。 因此,我回溯了響應中何時返回這些變量,然后通過發送相應的請求再次獲取值。 之后,我構造了正確的標頭和cookie,然后發送如下請求:

resp = ss.get(target_url, headers = myheader, cookies = mycookie)

但是,它並沒有給我任何回報。 有人可以幫忙嗎?

一段時間前,我在同一條船上,最終我從嘗試獲取工作請求轉為使用Selenium,這使生活變得更加輕松。 pip install selenium )。 然后,您可以登錄網站,然后導航到所需的網站,如下所示:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

website_with_logins = "https://website.com"
website_to_access_after_login = "https://website.com/page"

driver.get( str(website_with_logins) )
username = driver.find_element_by_name("username")
username.send_keys("your_username")
password = driver.find_element_by_name("password")
password.send_keys("your_password")
password.send_keys(Keys.RETURN)
driver.get( str(website_to_access_after_login) )

加載website_to_access_after_login (您會看到它出現),您可以獲取HTML並使用

html = driver.page_source

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM