python 用 beautifulsoup 获得 <div id="z"><div>的东西

python 用 beautifulsoup 获得 <div id="z"><div>的东西,第1张

一、你取到的跟浏览器不一样,这一般是因为内容是js生成或者js以ajax取到然后更新进去的。

想要自己写代码解决恐怕你要自己分析一下网页所带的js的功能了,或者想偷懒的话用webbrowser之类的模块通过浏览器来取得内容。

二、要取div的id属性用BeautifulSoup即可达到目的,要是装了PyQuery的就更简单,下面给个BeautifulSoup的例子:

from bs4 import BeautifulSoup

sp = BeautifulSoup('<div id="z"></div>')

assert(spdiv['id'],'z')

print spdiv['id']

你说的隐藏的div内容,应该是动态加载数据吧,不在网页源码中显示,只在加载网页时才请求数据进行显示,一般情况下,这种数据都保存在一个json文件中,只要抓包分析出这个json文件的url地址,然后再根据json文件结构进行解析,很快就能获取到动态加载的div数据,下面我以爬取人人贷上面的散标数据为例,简单介绍一下python如何爬取div动态加载的数据,实验环境win10+python36+pycharm50,主要步骤如下:

1首先,打开散标数据,如下,爬取的信息主要包括年利率、借款标题、期限、金额和进度这5个字段信息:

右键对应元素进行检查,可以看出所有的数据嵌套在div标签中,如下:

打开网页源码,我们按Ctrl+F查找对应的数据,会发现所查找的数据都未在网页源码中,如下,即数据都是动态加载,所以直接解析原网页是找不到div嵌套的数据的:

2接着,我们按F12调出开发者工具,依次点击“Network”->“XHR”,F5刷新页面,就会看到动态加载的json文件,查看这个文件,内容如下,左边为json文件的url地址,右边就是我们需要爬取的div数据:

3最后对应上面的json文件,我们就可以直接获取并解析json了,这里主要用到requests和json这2个模块,其中requests用于根据url地址获取json文件,json用于解析json文件,提取出我们所需要的信息,即div动态加载的数据,测试代码如下,非常简单:

运行程序,截图如下,已经成功爬取到div加载的数据:

至此,我们就完成了利用python爬取div动态加载的数据。总的来说,整个过程非常简单,最主要的还是抓包分析,只要你有一定的爬虫基础,熟悉一下上面的代码,多调试几遍程序,很快就能掌握的,当然,你也可以使用selenium进行爬取,直接解析就行,网上也有相关教程和资料可供参考,非常丰富,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。

以上就是关于python 用 beautifulsoup 获得 <div id="z"></div>的东西全部的内容,包括:python 用 beautifulsoup 获得 <div id="z"></div>的东西、如何用python爬取网页中隐藏的div内容、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9708128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存