Python爬虫之Selenium模块
什么是Selenium模块
Selenium是一个自动化测试工具,可以模拟用户在浏览器上的操作行为,例如填写表单、点击按钮、滚动页面等等。因此,Selenium也可以用来做网页爬虫,帮助我们自动化地获取网页上的数据。
安装Selenium
你可以使用pip工具来安装selenium模块,以下是安装命令:
pip install selenium
使用Selenium模块爬取网页
步骤一:导入模块
在开始使用Selenium模块之前,需要先导入selenium模块:
from selenium import webdriver
步骤二:启动浏览器
Selenium支持多种浏览器,例如Chrome、Firefox等。这里以Chrome浏览器为例,启动Chrome浏览器的代码如下:
browser = webdriver.Chrome()
步骤三:访问网页
browser.get('http://www.example.com')
步骤四:获取网页源代码
page_source = browser.page_source
以上是使用Selenium模块爬取网页的基本步骤。接下来,我们看两个具体的示例:
示例一:使用Selenium模块爬取淘宝搜索结果
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input = browser.find_element_by_id('q')
input.send_keys('手机')
button = browser.find_element_by_css_selector('.btn-search')
button.click()
products = browser.find_elements_by_css_selector('.product-item')
for product in products:
print(product.text)
以上代码实现了在淘宝上搜索“手机”并获取搜索结果。
示例二:使用Selenium模块爬取股市交易数据
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://quotes.money.163.com/trade/lsjysj_zhishu_000001.html')
table = browser.find_element_by_xpath('//*[@id="fn_finance_part_1"]/table[1]')
rows = table.find_elements_by_tag_name('tr')
for row in rows[1:]:
cells = row.find_elements_by_tag_name('td')
date = cells[0].text
close = cells[3].text
print(date, close)
以上代码实现了在网易财经上获取上证指数的交易数据,并输出日期和收盘价。
其他注意事项
-
在使用Selenium模块时,要注意浏览器的版本和驱动程序version的对应关系。可以通过以下链接查看匹配的版本:https://sites.google.com/a/chromium.org/chromedriver/downloads
-
在大规模爬虫时,为了防止被封IP或者延迟过高,建议使用代理IP和多线程等技术。
-
最后要记得关闭浏览器:
browser.quit()
希望以上内容可以帮助你更好地使用Selenium模块进行网页爬虫。