python爬虫之selenium模块

  • Post category:Python

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)

以上代码实现了在网易财经上获取上证指数的交易数据,并输出日期和收盘价。

其他注意事项

  1. 在使用Selenium模块时,要注意浏览器的版本和驱动程序version的对应关系。可以通过以下链接查看匹配的版本:https://sites.google.com/a/chromium.org/chromedriver/downloads

  2. 在大规模爬虫时,为了防止被封IP或者延迟过高,建议使用代理IP和多线程等技术。

  3. 最后要记得关闭浏览器:

browser.quit()

希望以上内容可以帮助你更好地使用Selenium模块进行网页爬虫。