首页 > 解决方案 > 使用 BeautifulSoup 和不变的 URL 进行网页抓取

问题描述

我正在尝试 这个

    r = requests.get(url) 
    soup = BeautifulSoup(r.text , 'lxml')
    details = soup.find_all('span', {'class' : 'src'})
   details = soup.find_all('div', {'class' : 'product_contain'})
i=0
for d in details:
    print(i,d.get_text(strip=True).strip())
    i+=1

但它只抓取一个网页。我检查了XHR但是当它更改页面时没有触发任何内容。

我还检查了FORM DATAadvancesearch.aspx 但它也没有页面索引相关信息。在页面点击事件我发现ctl00$ContentPlaceHolder1$gvItem$ctl01$ctl03但不知道如何在 URL 中使用它。

我应该使用什么 URL 来访问其他页面?

标签: pythonseleniumselenium-webdriverweb-scrapingbeautifulsoup

解决方案


在这种情况下,您应该使用 Selenium,它将在浏览器中打开页面,然后您可以处理导航按钮的单击事件并每次访问刷新的 DOM。这是一个简单的代码供您参考:

from selenium import webdriver

browser = webdriver.Firefox()
browser.get("http://www.google.com")

browser.find_element_by_id("lst-ib").send_keys("book")
browser.find_element_by_name("btnK").click()

推荐阅读