微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

爬取财富网数据存入postgresql与mongo

需要的工具有:pycharm,datagrip,robo 3t

1.获取财富网的ulr

分享图片

因为爬取多个页面,需要将页面k变成字符串类型,最终拼接成新的fulurl

2.导入所需要的第三方库

分享图片

3.为了反爬虫,我们添加header,其中header中含有多个浏览器内核,我只添加了两个,每次循环random随机选择一个

分享图片

4.在第一步获取了fulurl之后,检查网页源码,我们需要爬取

分享图片

等字段,然后我们创建一个csv文件,并将字段写进去。

分享图片

接下来我发送请求,用BeautifulSoup解析,然后通过find_all去找到字段所在标签

分享图片

通过find_all返回后的t是一个list,其中list里包含所有要爬取的内容

5.接下来对list进行遍历,把每条标签取出来,通过contents去掉标签,取出标签里面内容

分享图片

在爬取过程中发现字段“标题”中含有

分享图片

,需要将这条剔除

分享图片

通过把“标题”单独提取出来,然后判断长度,标准数据长度是1,所以等于1可以继续爬取之后字段。

接下来分别对字段选取,其中对应的变量分别是a2,b2,c4,c8,d3。

分享图片

其中在获取url时候,我们通过get方法获取标签中的href属性,但是url含有逗号,csv中是以逗号分别下一行,所以需要在url加上双引号。

分享图片

接下来将爬取的数据写入csv文件中,最后将整段代码封装成函数

6.爬取数据如下:

分享图片

爬取了10000条,只截取了其中10条

7.接下来将数据存入postgresql中,也可以直接在爬数据的时候导入,而我是在爬好的csv文件中导入的。需要用到psycopg2

分享图片

打开文件读取所有行并返回列表,其中第一行是"阅读,评论,标题链接,标题,作者",所以我们选择第一行以后的数据。

分享图片

首先通过connect方法链接数据库,创建cursor以访问数据库,然后创建表其中字段"阅读,评论"中包含

分享图片

所以将以integer换成varchar。

分享图片

另外这里需要说明一下,我们要将数据变成tuple类型导入到postgresql中,而csv读取出来的数据是list类型。最后用split以逗号对其分割,用sql语句插入数据库中。

分享图片

统计存入多少条数据。

分享图片

最后提交当前事务,关闭数据库

分享图片

上图是数据库中的数据。

8.接下来将数据存入mongodb中

分享图片

需要用到的模块就是pymongo,思路和postgresql基本上一样,但是mongodb需要以dict类型导入进去。

分享图片

上图是导入数据库之后的数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐