爬虫同时提取多个网页内文字与表格该怎么办

发布于 2022-09-05 10:21:25 字数 1231 浏览 41 评论 0

想要爬取某网站1-n页的内容,url构建为'http://www.innotree.cn/compan...',其中的?是指第n页,假设其为58095,那url就是'http://www.innotree.cn/compan...'(需要登录看详细信息,可以填我的账号13213210054,密码123b45),那假如我爬下来的公司名字和公司注册号等等可以用item.companyname,item.companyid等等存储,这些比较简单,问题是后面的融资信息,如果我用item.invest存储,那么这个变量实际是个表格,没有进行详细的展开,后期还需要处理,那如果我展开,需要的item.变量就太多了,而且每一个公司的融资次数都是不一样的,也就是说对于不同的页面来说,html标签tr数量是不确定的,包括后面的工商变更记录也是这个情况,那么我的问题是:
1.我怎么保存这种不确定行数的表格信息,因为前面用了item.name等item变量,相当于构建了一个表格了,那么怎么在这个表格中再保存融资这个不确定行数的内嵌表格信息?通常在后端的数据库都是以json形式类似的字典保存的吗?
2.如果加上保存工商变更记录这个表格信息,如上,不是相当于一个表格中嵌套了两个表格吗?感觉好复杂的样子,我考虑是把融资信息和工商变更记录信息各自单独新建一个itemi()和itemc(),最后爬完再组合起来。
由于网页比较复杂,不知道大神们通常都是怎么处理这类网页的?
感谢回复!

附上网页:
某一页的我要保存的基本item.name等信息
融资情况的这个表格
工商变更记录表格

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

总以为 2022-09-12 10:21:25

这个问题可以从侧面变相的解决,我直说融资情况的抓取,商务信息哪个简单我就不赘述了
其实融资情况是根据 js 生成的,鼠标指向之后他生成相应的融资情况展示出来
这个 js 就在网页源码的下方

clipboard.png

你要的这些信息直接去 js 代码里面取就行了

#!/usr/bin/python
#-*-coding:utf-8 -*-
import re
from bs4 import BeautifulSoup
import json
import requests
from selenium import webdriver
driver = webdriver.Firefox()
#tml = requests.get("http://www.innotree.cn")
html = driver.get("http://www.innotree.cn/company/58095.html")
dd = driver.page_source


result = re.search('json_finance = (.*),project_data_name',dd).group(1)
#ss = json.dumps(result, encoding='UTF-8', ensure_ascii=False)
ll = eval(result)

for x in ll:
    l = x["round"]
    m = x["money"]
    print l,m

执行之后的结果为

E轮 6亿美元
战略投资 未透露
D轮 2.15亿美元
C+轮 近亿美元
C轮 1亿美元
B+轮 数千万美元
B轮 数千万美元
A轮 数百万美元
一身软味 2022-09-12 10:21:25

可以提示一点,你可以吧这个item定义成数组,每行tr的内容都做成一个对象push进去,这样就不用担心行数不确定的问题了。至于对于美内容的解析要尽量写的经过,不能过度依赖页面结构。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文