网页信息抓取软件(五一假期Python抓取动态网页信息的相关操作、网上教程)

优采云 发布时间: 2021-11-16 07:07

  网页信息抓取软件(五一假期Python抓取动态网页信息的相关操作、网上教程)

  5月1日放假学习Python爬取动态网页信息的相关操作,结合封面参考书和网上教程写出能满足需求的代码。自从我第一次接触python以来,过程中有很多波折。为了避免以后出现问题,我找不到相关信息来创建这篇文章。

  准备工具:Python 3.8

  谷歌浏览器

  谷歌驱动程序

  测试 网站:

  考试前准备:

  *本次测试主要采用两种方式抓取动态网页数据,一种是requests和json解析的方式;另一种是硒化法。requests 方法速度快,但有些元素的链接信息无法捕获;selenium 方法通过模拟打开浏览器来捕获数据。速度比较慢,因为需要打开浏览器,但是可以爬取的信息比较慢。综合的。

  抓取的主要内容如下:(网站中的部分可转债数据)

  在请求模式下捕获网站信息:

  需要安装的Python脚本:Requests

  安装方法:以管理员身份运行cmd;输入pip install requests命令,安装成功后会有提示。如果安装失败一次,请安装多次

  (前提相关端口没有关闭)。如果pip版本不是最新的,会提醒你更新pip版本,pip的环境变量也要设置好。设置方法参考python的设置方法。

  请求获取代码如下:

  *敏*感*词*请求

  导入json

  网址='#39;

  return_data = requests.get(url,verify = False)

  js=return_data.json()

  对于 js['rows'] 中的 i:

  print(i['id']+" "+i['cell']['bond_nm']+" "+i['cell']['price'])

  最终结果如下:

  注意两点:

  找到正确的url:chrome打开头脑风暴记录网站(#cb)。点击F12按钮,在弹出的开发工具窗口中选择network,然后选择XHR,点击F5刷新。在名称栏中一一点击,找到您需要的XHR。通过预览,我们可以发现“?__jsl=LST”对应的XHR就是我们要找的,在headers中可以找到对应的url。

  json对请求的数据格式进行转换,方便数据查找。json格式转换后,请求的数据格式与预览的格式一致。如果要定位到“国轩转债”一栏的数据,使用代码js['rows']['cell']['bond_nm']*selenium抓取网页数据:

  需要安装的python脚本:selenium(安装方法参考requests安装)

  配置浏览器对应的webdriver。以chrome为例,下载chrome版本对应的驱动(地址栏输入chrome://version,回车查看chrome版本)。放在chrome安装的文件夹下,设置环境变量。

  selenium爬取代码如下:

  从硒导入网络驱动程序

  导入时间

  驱动程序=网络驱动程序。Chrome()

  url1='#cb'

  bes=driver.get(url1)

  time.sleep(5) #增加延迟命令,等待元素加载

  driver.find_element_by_tag_name("tr").click() #增加延迟,等待元素加载

  table_tr_list=driver.find_element_by_xpath("///*[@id='flex_cb']").find_elements_by_tag_name("tr") #将下一个元素改为元素

  对于 table_tr_list 中的 tr:

  如果 len(tr.get_attribute('id'))>0:

  print(tr.find_element_by_xpath("//*[@id=%d]/td[1]/a"%(int(tr.get_attribute('id')))).text+" "+tr.find_element_by_xpath(" //*[@id=%d]/td[2]"%(int(tr.get_attribute('id')))).text)

  驱动程序退出()

  操作结果如下:

  注意三点:

  1、 必须添加一个延迟命令(time.sleep(5)),否则可能会出现找不到元素的错误(NoSuchElementException)

  2、使用find_element_by_xpath时,可以在web开发者中右键复制xpath,确认元素的路径。

  3、发送ID时,将字符转为数值,注意清除空字符

  捕获的数据也可以通过python保存在excel中。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线