[英]Resolving a python array wrapped in Json with Angular.js $resource
[英]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.