我正在抓取这个网站:https://www.findinall.com/finance-category-396
我正在使用Selenium(Python(并在名为">显示"的下拉菜单中的选项300上执行单击选项。点击自动化成功,网页在一个页面中集中显示 12 个页面中的所有数据,但抓取数据后,只获得前 12 个数据项,即page_source不变。
这是我的代码:
from selenium import webdriver
driver=webdriver.Chrome("/home/ronith/Downloads/chromedriver")
driver.get('https://www.findinall.com/finance-category-396/#')
driver.find_element_by_xpath("//select[@name='per_page']/option[@value
='300']").click()
driver.implicitly_wait(5)
data=driver.find_elements_by_xpath('//div[@class="pro-list-tb mt15"]')
for i in range(len(data)):
print(data[i].text,'nn')
driver.close()
我想抓取执行单击操作后可用的整个数据。我在这里做错了什么?
而是使用Selenium来抓取使用BeautifulSoup,请求并导入以下代码
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEnginePage
from bs4 import BeautifulSoup
import requests
class Page(QWebEnginePage):
def __init__(self, url):
self.app = QApplication(sys.argv)
QWebEnginePage.__init__(self)
self.html = ''
self.loadFinished.connect(self._on_load_finished)
self.load(QUrl(url))
self.app.exec_()
def _on_load_finished(self):
self.html = self.toHtml(self.Callable)
def Callable(self, html_str):
self.html = html_str
self.app.quit()
并将此代码导入到另一个 python 文件中,例如从 jssoup import 页面(我将其命名为"jssoup"(
page = Page(url)
soup = bs.BeautifulSoup(page.html, 'lxml')
js_test = soup.find('p', class_='jstest')
print(js_test)