盘点一个selenium网络爬虫问题
问题描述:编写一个使用Selenium的网络爬虫,它能够从网页中提取特定数据并将其保存到数据库中。
解决方案:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import pymysql
# 连接数据库
connection = pymysql.connect(host='localhost',
user='your_username',
password='your_password',
database='your_database',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# 在数据库中创建表
cursor.execute("CREATE TABLE IF NOT EXISTS example_table (id INT AUTO_INCREMENT, data TEXT, PRIMARY KEY (id))")
# 初始化WebDriver
driver = webdriver.Chrome()
# 打开网页
driver.get('http://example.com')
# 假设数据在<div class="data-container">中
data_container = driver.find_element(By.CLASS_NAME, 'data-container')
# 提取数据并保存到数据库
for data_item in data_container.find_elements(By.TAG_NAME, 'p'):
data = data_item.text
with connection.cursor() as cursor:
cursor.execute("INSERT INTO example_table (data) VALUES (%s)", (data))
connection.commit()
finally:
connection.close()
driver.quit()
在这个例子中,我们使用了Selenium WebDriver来加载网页,定位数据元素,并提取其文本内容。然后,我们使用pymysql库将提取的数据保存到MySQL数据库中。这个例子假设你已经安装了Selenium库和pymysql库,并且你的环境中有一个合适的WebDriver(如ChromeDriver)。
评论已关闭