新人学 Python 爬虫,用了 BS4,目前只会爬取具体的 url,求问如何爬取整个页面呢或者是某个日期呢

2022-04-19 13:33:05 +08:00
 kiko12324
爬取的网站: https://www.beiei.com/navisample.php
爬取目标:公司名称

如图:这是爬取单个页面,用 request 请求下来再用 bs4 解析设置条件为 li 和 li0 就能够获取了,但是在外面的 url 好像都是没有啥关联的...


如图:比如爬取 4.18 号,发现用 bs4 不知道该怎么取到该段 HTML ,怎么用 bs4 限制到这段呢
2858 次点击
所在节点    Python
6 条回复
janda
2022-04-19 13:35:05 +08:00
xpath
colatea
2022-04-19 13:39:11 +08:00
我用 xpath,大同小异,取到 div 内容为 2022.04.18 以后,向上找父节点,再向下找 table
html.xpath("\\div[text()='2022.04.18']/../table/tbody")
Ritter
2022-04-19 13:40:16 +08:00
百度 bs4 doc
NotFoundEgg
2022-04-19 13:50:58 +08:00
divs = soup.findAll(name='div', attrs={"class": "dateDiv"})
for div in divs:
if '2022.04.18' in div.next:
table = div.find_next('table')
Joshuam
2022-04-19 18:58:14 +08:00
推荐个 chrome 插件:SelectorGadget
只需点点点你要的数据,他给你 CSS Selector ,然后使用 bs4 处理 CSS Selector
AmberJiang
2022-04-25 15:55:55 +08:00
建议查看 BS4 的官方文档学习

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/847878

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX