实时抓取网页数据(Python3基本语法,抓取境外投资企业(机构)名录)

优采云 发布时间: 2022-01-31 06:09

  实时抓取网页数据(Python3基本语法,抓取境外投资企业(机构)名录)

  【新手任务】

  老板:我们在海外市场,吸引投资人很重要。你去把所有的海外投资企业(机构)都抄给我。

  

  任务.png

  一共2606页,点击下一页,然后ctrl+C,再Ctrl+V,准备复制到黎明。环顾四周,新来的实习生们都回学校做毕业论文了。

  【解决方案】

  知识点:Python 3基础语法、splinter库和xpath基础知识

  情况1:

  Python 使用 splinter 库来控制 chrome 浏览器,打开网页,获取数据。抢占境外投资企业(机构)名录。

  思路分析:

  第 1 步:安装碎片

  百度splinter安装,建议先安装anaconda(python常用库基本都有),然后再安装splinter

  第二步:使用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 实例

  分裂官方文档

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线