簡體   English   中英

使用 Python 請求模塊時解析 Angular.JS

[英]Resolving Angular.JS when using Python Requests Module

我正在制作一個 python 腳本來從使用 Angular JS 的站點收集圖像 url。 但是,requests.get 請求會返回未解析 Angular.JS 的網站。 例如...

>>>import requests

>>>url = "https://website.com"
>>request = requests.get(url)

>>>requests.text
<img ng-src="{{ getThumbnail(attachment).href }}" >

我已經嘗試尋找使用請求模塊的替代方法,但我找不到其他人專門討論這個問題,所以我使用其他模塊的大部分嘗試都是在黑暗中完成的。 我必須有哪些替代方法來檢索 Angular href?

requests-html 的問題是您的 URL 包含 # 或片段標識符

來自https://en.wikipedia.org/wiki/Fragment_identifier

當代理(例如 Web 瀏覽器)從 Web 服務器請求 Web 資源時,代理將 URI 發送到服務器,但不發送片段。 而是代理等待服務器發送資源,然后代理根據文檔類型和分片值處理資源。

requests-html 看起來不像是使用片段標識符。

我能想到的唯一選擇是使用 Selenium。

sudo pip3 install selenium

然后獲取驅動程序https://sites.google.com/a/chromium.org/chromedriver/downloads (根據您的操作系統,您可能需要指定驅動程序的位置)

from selenium import webdriver


url = "https://www.namus.gov/MissingPersons/Case#/51238/"
driver = webdriver.Chrome()
driver.get(url)
driver.implicitly_wait(10)
element = driver.find_element_by_class_name("section-list")

for child_element in element.find_elements_by_xpath(".//a"):
    print(child_element.get_attribute('href'))

driver.quit()

輸出:

https://www.namus.gov/api/CaseSets/NamUs/MissingPersons/Cases/51238/Images/83268/Original
https://www.namus.gov/api/CaseSets/NamUs/MissingPersons/Cases/51238/Images/83270/Original
https://www.namus.gov/api/CaseSets/NamUs/MissingPersons/Cases/51238/Images/83271/Original
https://www.namus.gov/api/CaseSets/NamUs/MissingPersons/Cases/51238/Images/83272/Original
https://www.namus.gov/api/CaseSets/NamUs/MissingPersons/Cases/51238/Images/83273/Original
https://www.namus.gov/api/CaseSets/NamUs/MissingPersons/Cases/51238/Images/83274/Original

暫無
暫無

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

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