Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。
Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。
Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 PhantomJS 的工具代替真实的浏览器。
可以从 PyPI 网站下载 Selenium库https://pypi.python.org/simple/selenium ,也可以用 第三方管理器 pip用命令安装:pip install selenium
Selenium 官方参考文档:http://selenium-python.readthedocs.io/index.html
import time
import requests
from lxml import etree
from selenium import webdriver
# 获取网页html
def driver_html(url):
# 新建一个chrome浏览器 executable_path=chromedriver.exe地址
driver = webdriver.Chrome(executable_path= r'C:\chromedriver.exe')
# 打开网页
driver.get(url)
# 单击想要的内容
driver.find_element_by_xpath('//li[@val="4"]').click()
time.sleep(5)
# 获取网页源码
html = driver.page_source
return get_url(html)
# 获取url列表
def get_url(html):
req = etree.HTML(html)
title = req.xpath('//div[@class="publicont"]//a//text()')
urls = req.xpath('//div[@class="publicont"]//a//@href')
html_dict = dict(zip(title, urls))
url_info(html_dict)
# 获取url详情页
def url_info(r):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"
}
for title,url in r.items():
new_url = 'https://www.fjggfw.gov.cn/Website/'+url
req = requests.get(new_url,headers=headers)
res = req.text
#再用一轮xpath匹配就可以匹配到所需内容,不在啰嗦
if __name__ == '__main__':
# 初始url
url = "https://www.fjggfw.gov.cn/Website/JYXXNew.aspx"
driver_html(url)
** 会不定期更新内容,欢迎关注,一起进步,谢谢! **