如何利用Python3基本语法,splinter库和xpath基本知识
优采云 发布时间: 2021-07-20 05:18如何利用Python3基本语法,splinter库和xpath基本知识
【新手任务】
Boss:我们在海外市场,获得投资者非常重要。去抄所有海外投资企业(机构)给我。
任务.png
一共2606页,点下一页,然后ctrl+C,然后Ctrl+V,准备复制到天亮。一眼望去,新来的实习生都回学校做毕业论文了。
[解决方案]
知识点:Python 3基础语法,splinter库和xpath基础知识
案例 1:
Python 使用 splinter 库来控制 Chrome 浏览器、打开网页和获取数据。掌握境外投资企业(机构)名单。
分析思路:
第一步:安装splinter
百度splinter安装,建议先安装anaconda(python常用库基本都有),然后安装splinter
第 2 步:使用 splinter 打开 chrome 并访问链接
from splinter import Browser
browser = Browser('chrome') #打开谷歌浏览器
browser.visit('http://femhzs.mofcom.gov.cn/fecpmvc/pages/fem/CorpJWList.html') #访问链接
打开谷歌浏览器并访问link.png
第 3 步:获取信息
# 通过谷歌浏览器的检查功能,可以很迅速地获取所需元素的地址。
# find_by_xpath(XPath地址) 返回值是储存在列表中的
# 这里是只有一个元素的列表,所以要选择列表第一个元素的值
r1c1=browser.find_by_xpath('//*[@id="foreach"]/td[1]').first.value # 取得1行1列的值
r1c2=browser.find_by_xpath('//*[@id="foreach"]/td[2]').first.value # 取得1行2列的值
r1c3=browser.find_by_xpath('//*[@id="foreach"]/td[3]').first.value# 取得1行3列的值
browser.find_by_xpath('//*[@id="pageNoLink_0"]').first.click() # 点击下一页
# 打印数据,并退出浏览器
print(r1c1,r1c2,r1c3)
browser.quit()
[结论]
本文简单介绍如何使用python splinter库操作谷歌浏览器,然后定位需要的元素,然后获取元素的值。获取后,打印数据并退出浏览器。关于数据的存储,请参考插上翅膀,让Excel飞-xlwings(一)。获取完整的数百页数据只是为了给代码添加一个循环。如果需要,我会详细说明下一次就完成了,代码如下:
from splinter import Browser
browser = Browser('chrome')
browser.visit('http://femhzs.mofcom.gov.cn/fecpmvc/pages/fem/CorpJWList.html')
r1c1=browser.find_by_xpath('//*[@id="foreach"]/td[1]').first.value
r1c2=browser.find_by_xpath('//*[@id="foreach"]/td[2]').first.value
r1c3=browser.find_by_xpath('//*[@id="foreach"]/td[3]').first.value
browser.find_by_xpath('//*[@id="pageNoLink_0"]').first.click()
# 打印数据,并退出浏览器
print(r1c1,r1c2,r1c3)
browser.quit()
参考资料
Xpath 实例
官方分裂文件