3
我試圖通過單擊按鈕來刮擦網站。我嘗試使用螢火蟲和谷歌鉻控制檯。我無法捕捉到它發送的請求,以避免點擊按鈕。我看到只有兩個.js文件的請求時,我在下面的網址使用BS4點擊並刮取aspx頁面python
http://www.icsi.edu/Facilities/MembersDirectory.aspx
我試圖通過單擊按鈕來刮擦網站。我嘗試使用螢火蟲和谷歌鉻控制檯。我無法捕捉到它發送的請求,以避免點擊按鈕。我看到只有兩個.js文件的請求時,我在下面的網址使用BS4點擊並刮取aspx頁面python
http://www.icsi.edu/Facilities/MembersDirectory.aspx
點擊搜索按鈕,我覺得處理這是使用硒的webdriver的最簡單的方法。
鏈接:http://www.seleniumhq.org/docs/03_webdriver.jsp#introducing-webdriver
如果你有PIP安裝,簡單的
pip install selenium
應該工作。我建議使用Firefox作爲瀏覽器。
您可以使用Selenium下載頁面,然後用BS4解析它。這是一個簡單的腳本,它將在表單中輸入「Foo」和「Bar」,然後單擊「搜索」按鈕。
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.icsi.edu/Member/MembersDirectory.aspx")
# Alternatively, link directly to the form:
# driver.get("https://www.icsi.in/student/Members/MemberSearch.aspx?SkinSrc=%5BG%5DSkins/IcsiTheme/IcsiIn-Bare&ContainerSrc=%5BG%5DContainers/IcsiTheme/NoContainer")
# Locate the elements.
first = driver.find_element_by_id("dnn_ctr410_MemberSearch_txtFirstName")
last = driver.find_element_by_id("dnn_ctr410_MemberSearch_txtLastName")
search = driver.find_element_by_id("dnn_ctr410_MemberSearch_btnSearch")
# Input the data and click submit.
first.send_keys("Foo")
last.send_keys("Bar")
search.click()
作爲獎勵,這裏是如何通過結果的頁面重複:
# next_page should be redeclared every time you visit a new page.
next_page = driver.find_element_by_class_name("rgPageNext")
next_page.click()
你的鏈接被打破了我。 –
試試這個http://www.icsi.edu/Member/MembersDirectory.aspx –