您当前的位置:首页 > 电脑百科 > 站长技术 > 网站

搜狐新闻小爬虫,解析数据接口并插入mysql数据库

时间:2019-12-02 16:20:45  来源:  作者:

搜狐新闻小爬虫,解析数据接口并插入mysql数据库

 

  • 这个小爬虫我们用到的requests、re、lxml、json和pyMySQL在编写代码之前我们需要将他们导入进来.
import requests
from lxml import etree
import pymysql
import json
  • 首先先选择一个浏览器头信息,这个可有可无,当然有了更好,存在它才能让我们的爬虫更像是从浏览器进入获取信息的。
headers = {
 'Connection': 'keep-alive',
 'Upgrade-Insecure-Requests': '1',
 'User-Agent': 'Mozilla/5.0 (windows NT 6.1; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
 'Accept-Encoding': 'gzip, deflate',
 'Accept-Language': 'zh-CN,zh;q=0.9',}
  • 接下来就是分析数据接口了,这个可以使用浏览器按F12,切换到编辑者模式,从中分析出数据接口链接,这里我们直接给出数据接口。
url = "http://v2.sohu.com/public-api/feed?scene=CHANNEL&sceneId=10&page=1&size=10"

通过数据接口形式我们看到它有两个参数page和size,page=1表示第一页,size=10表示每页十条数据。我们只需要改变page的数据就可以源源不断的获取数据了,当然获取数据要节制,不要给人家服务器造成太大压力。

  • 接下来直接请求网页链接获取链接返回的数据。这里返回的是json字符串,我们需要对json字符串进行解析,这个时候json这个库就用到了。
json_str = requests.get(url,headers= headers).text
[{
	"id": 357806424,
	"authorId": 557006,
	"authorName": "FX168",
	"authorPic": "//sucimg.itc.cn/avatarimg/34ca41ae9ad04be68072f8894d7124b7_1491542550231",
	"focus": "//5b0988e595225.cdn.sohucs.com/c_fill,w_600,h_300,g_faces/images/20191202/cc5eda06fba94b3fb7ed0c1c2faea9a6.jpeg",
	"picUrl": "//5b0988e595225.cdn.sohucs.com/c_fill,w_150,h_100,g_faces,q_70/images/20191202/cc5eda06fba94b3fb7ed0c1c2faea9a6.jpeg",
	"images": ["//5b0988e595225.cdn.sohucs.com/c_fill,w_150,h_100,g_faces,q_70/images/20191202/cc5eda06fba94b3fb7ed0c1c2faea9a6.jpeg", "//5b0988e595225.cdn.sohucs.com/c_fill,w_150,h_100,g_faces,q_70/images/20191202/df1ed938d9614cf690f87a58577ce07a.png"],
	"title": "​70年来首次,美国成石油净出口国!国际油价暴跌近5%,一切才刚刚开始?",
	"mobileTitle": "​70年来首次,美国成石油净出口国!国际油价暴跌近5%,一切才刚刚开始?",
	"tags": [{
		"id": 70694,
		"name": "沙特",
		"channelId": 0,
		"channelName": null,
		"categoryId": 0,
		"categoryName": null,
		"config": null,
		"introduction": null,
		"secureScore": 100,
		"hotSpot": false
	}, {
		"id": 68937,
		"name": "美国",
		"channelId": 0,
		"channelName": null,
		"categoryId": 0,
		"categoryName": null,
		"config": null,
		"introduction": null,
		"secureScore": 100,
		"hotSpot": false
	}, {
		"id": 68938,
		"name": "俄罗斯",
		"channelId": 0,
		"channelName": null,
		"categoryId": 0,
		"categoryName": null,
		"config": null,
		"introduction": null,
		"secureScore": 100,
		"hotSpot": false
	}],
	"publicTime": 1575262702000,
	"channelId": 0,
	"channelName": null,
	"channelUrl": "",
	"categoryId": 0,
	"categoryName": null,
	"headImage": null,
	"cmsId": 0,
	"originalSource": "http://mp.weixin.qq.com/s?__biz=MjM5OTAwOTMyMA==&mid=2650280772&idx=1&sn=85dd7f58ab6b292fcff2d57a677a35dc",
	"outerLink": false,
	"otherId": 0,
	"passport": "fx168caijing@sohu.com",
	"personalPage": "http://mp.sohu.com/profile?xpt=ZngxNjhjYWlqaW5nQHNvaHUuY29t",
	"videoInfo": null,
	"type": 0,
	"cover": null,
	"tkd": null,
	"secureScore": 100
}]
  • 通过这个数据我们来提取我们自己需要的数据,比如标题,发布时间,当然如果想获取新闻正文,还需要进入到网址链接中取,在数据中我们看到网址链接在picUrl这个字段中。搜狐的新闻链接是通过id与authorId拼接而成,针对上面的一条数据,这个新闻的正文链接便是
http://www.sohu.com/a/357806424_557006
  • 通过之前的方式,我们再去请求这个网址获取新闻正文的html原页面,再将原页面通过lxml加工成元素结构,便可以直接获取数据啦!
html = requests.get(url,headers= headers).text
#获取内容
etree.HTML(str(html)).xpath(“”//article[@class = 'article']//p//text()')
  • 获取数据之后将其组装成sql语句,以便直接插入到数据库中。
sql = " sql_insert = 'insert into information (`type`, url,author,title,content,postTime,addtime,`unique`) values (%s,%s,%s,%s,%s,%s,%s,%s)'
"
  • 通过pymysql获取mysql的连接信息执行sql语句
 conn = pymysql.connect(host=“xxxxxxx”, port=3306,
 user="xxxx", passwd="xxxxxx",
 db="news", charset="utf8")
cursor = conn.cursor()
cursor.execute(sql_insert)

完整代码请转我的csdn连接!



Tags:爬虫   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
利用Python实现中国地铁数据可视化。废话不多说。让我们愉快地开始吧~开发工具Python版本:3.6.4相关模块:requests模块;wordcloud模块;pandas模块;numpy模块;jieba模块;pyecharts模...【详细内容】
2021-12-08  Tags: 爬虫  点击:(34)  评论:(0)  加入收藏
这个开源项目程序可以持续爬取一个或多个新浪微博用户(如李文di、无疫烦)的数据,并将结果信息写入文件或数据库。写入信息几乎包括用户微博的所有数据,包括用户信息和微博信息两大类。...【详细内容】
2021-10-27  Tags: 爬虫  点击:(43)  评论:(0)  加入收藏
今天我们仍旧利用scrapy框架实现自动翻页爬取数据,爬取诗词胖排行榜( https://www.shicimingju.com/paiming)中的标题。1.新建文件夹scrapy starproject 文件名(wallpaper)2.新建...【详细内容】
2021-10-21  Tags: 爬虫  点击:(62)  评论:(0)  加入收藏
回顾python学习历程,感慨良多,这门语言实在是太强了,当然,分支也很多,有的在做安全,有的在做数据,有的在做爬虫,本文就笔者本身的爬虫入门的小经验分享给读者,期待各位在学习python的...【详细内容】
2021-08-11  Tags: 爬虫  点击:(81)  评论:(0)  加入收藏
来源:Python数据之道作者:Peter整理:阳哥大家好,我是阳哥。今天来跟大家分享用 BeautifulSoup 获取信息的一些知识点,文章内容由公众号读者 Peter 创作。欢迎各位童鞋向公众号投...【详细内容】
2021-06-23  Tags: 爬虫  点击:(134)  评论:(0)  加入收藏
上次写的如何给小孩约马术课过程,见这里 Python 约课[1], 本想一劳永逸,但是好景不长,预约系统升级了,而且还换了服务商,从之前的公众号 H5 应用,换成了小程序,之前编写的方式直接失...【详细内容】
2021-05-07  Tags: 爬虫  点击:(262)  评论:(0)  加入收藏
众所周知,代理IP可以助力爬虫工作更好的进行,很多人认为:如果没有代理IP,爬虫工作寸步难行。那么,如果爬虫不使用代理IP会出现什么情况呢? 一、小型爬虫:可有可无爬几百篇文章,几百...【详细内容】
2021-05-07  Tags: 爬虫  点击:(157)  评论:(0)  加入收藏
前言 将爬虫的爬取过程分为网络请求,文本获取和数据提取3个部分。 信息校验型反爬虫主要出现在网络请求阶段,这个阶段的反爬虫理念以预防为主要目的,尽可能拒绝反爬虫程序的请...【详细内容】
2021-04-20  Tags: 爬虫  点击:(452)  评论:(0)  加入收藏
导读:Scrapy由Python语言编写,是一个快速、高层次的屏幕抓取和Web抓取框架,用于抓取Web站点并从页面中提取出结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试...【详细内容】
2021-04-13  Tags: 爬虫  点击:(335)  评论:(0)  加入收藏
在了解爬虫基础、请求库和正则匹配库以及一个具体豆瓣电影爬虫实例之后,可能大家还对超长的正则表达式记忆犹新,设想如果想要匹配的条目更加多那表达式长度将会更加恐怖,这显然...【详细内容】
2021-04-12  Tags: 爬虫  点击:(262)  评论:(0)  加入收藏
▌简易百科推荐
今天我们来聊一下北京地区的《ICP经营许可证》有多好办,现在的互联网上提供的商机越来越多,增值电信业务十分火爆,企业通过互联网突破地域的限制,把公司产品卖到更远的地方,同时...【详细内容】
2021-12-17  梦想理应飞翔Yy    Tags:《ICP经营许可证》   点击:(12)  评论:(0)  加入收藏
转自: https://blog.kermsite.com/p/blog-intro/由于格式问题,部分链接、表格可能会失效,若失效请访问原文此专题将详细介绍如何从零开始搭建一个个人博客。Dec 01, 2021阅读时...【详细内容】
2021-12-17  LaLiLi    Tags:个人博客   点击:(7)  评论:(0)  加入收藏
SP证是第二类增值电信业务经营许可证的简称。分为全网SP证和地网SP证。申请经营许可证是在工信部申请,全网SP经营许可证的有效期是5年,全网SP许可证在工信部办理全网SP续期,地...【详细内容】
2021-11-01  s陳述    Tags:sp证书   点击:(39)  评论:(0)  加入收藏
现在还有许多人不知道EDI许可证是什么东西今天我就来给大家讲解一下.EDI许可证就是一种增值电信业务经营许可证。是针对在线数据处理和交易处理业务需求的专业资格证书。 《...【详细内容】
2021-10-28  soberXx    Tags:edi许可证   点击:(75)  评论:(0)  加入收藏
元素的化学概念,如周期表中的化学元素,一切物质都是由元素构成的。对程序员而言,网站建设制作就是代码构成网站。企业网站设计者也收集了各种各样的元素,但并非所有元素都需要运...【详细内容】
2021-10-26  南宁云尚网络    Tags:企业网站   点击:(40)  评论:(0)  加入收藏
在运营网站的过程中,有一件不可忽略的事情。那就是网站上线之前需要完成 ICP 备案。说到这里,很多朋友就提出疑问了~· 什么是 ICP 备案呢?· ICP 备案需要哪些材...【详细内容】
2021-10-22  启测云    Tags:ICP备案   点击:(46)  评论:(0)  加入收藏
最近有朋友问我,我公司有外资就不能申请ICP许可证了么?外资的定义是什么?其实是可以的,但有一个特定条件必须满足,外资公司是指公司有外资股东,比如香港、加拿大、美国、韩国等等,...【详细内容】
2021-10-21  小白速看Z    Tags:ICP   点击:(51)  评论:(0)  加入收藏
自互联网出现以来,超文本传输协议http协议被广泛用于在Web浏览器和网站服务器之间传递信息,但随着互联网的发展,另一种协议——https出现,并与http一同服务于这个互联...【详细内容】
2021-10-20  我是FEIYA    Tags:https   点击:(44)  评论:(0)  加入收藏
Grafana Loki 是一个日志聚合工具,它是功能齐全的日志堆栈的核心。图片来自 包图网先看看结果有多轻量吧: Loki 是一个为有效保存日志数据而优化的数据存储。日志数据的高效索...【详细内容】
2021-09-14    51CTO  Tags:Loki日志   点击:(97)  评论:(0)  加入收藏
背景最近做微信小程序开发比较多,大家知道线上微信小程序为了安全起见,要求后端通信协议必须是HTTPS,这就要求需要安装证书。为了测试预发布线上环境,特地买了个最便宜的域名,为...【详细内容】
2021-09-14  小李子说程序    Tags:HTTPS证书   点击:(125)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条