新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 站长技术 > 网站

搜狐新闻小爬虫,解析数据接口并插入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:爬虫   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
这个小爬虫我们用到的requests、re、lxml、json和pymysql在编写代码之前我们需要将他们导入进来.import requestsfrom lxml import etreeimport pymysqlimport json 首先...【详细内容】
2019-12-02   爬虫  点击:(0)  评论:(0)  加入收藏
Python学习网络爬虫主要分3个大的版块:抓取,分析,存储。另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。 当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输...【详细内容】
2019-11-28   爬虫  点击:(7)  评论:(0)  加入收藏
通用爬虫和聚焦爬虫根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种.通用爬虫通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是...【详细内容】
2019-11-27   爬虫  点击:(2)  评论:(0)  加入收藏
以前在学校做科研都是直接利用网上共享的一些数据,就像我们经常说的dataset、beachmark等等。但是,对于实际的工业需求来说,爬取网络的数据是必须的并且是首要的。最近在国内一...【详细内容】
2019-11-26   爬虫  点击:(2)  评论:(0)  加入收藏
今天要给大家介绍的是验证码的爬取和识别,不过只涉及到最简单的图形验证码,也是现在比较常见的一种类型。运行平台:WindowsPython版本:Python3.6IDE: Sublime Text其他:Chrome浏...【详细内容】
2019-11-19   爬虫  点击:(6)  评论:(0)  加入收藏
本篇要介绍的是开始学习爬虫之前必会的技能 - 浏览器自带的开发者工具,学会了浏览器开发者工具,才能更好的分析出网页相应的内容结构,以及如何使用开发者工具来找出网站中信息...【详细内容】
2019-11-13   爬虫  点击:(10)  评论:(0)  加入收藏
很多时候我们需要使用Selenium库来执行python爬虫或自动测试,但是我们经常会在登录时因为验证代码而卡住,特别头疼。尤其是现在的图形认证代码和移动滑块验证码,连最简单的文本...【详细内容】
2019-11-06   爬虫  点击:(14)  评论:(0)  加入收藏
如果不使用代理ip,爬虫工作必定无路可行,因此大部分爬虫工作者都会去购买安全稳定的代理ip。使用了高质量的代理ip后,会不会就能够无后顾之忧了呢?这个可不会这么容易,还要改进方案,有效分配资源,提升工作效率,又快速又稳定又...【详细内容】
2019-11-05   爬虫  点击:(21)  评论:(0)  加入收藏
在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器人(bots)。最常用的方...【详细内容】
2019-10-30   爬虫  点击:(9)  评论:(0)  加入收藏
如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工具,让爬虫变得简单、容易...【详细内容】
2019-10-29   爬虫  点击:(21)  评论:(0)  加入收藏
多线程概述多线程使得程序内部可以分出多个线程来做多件事情,充分利用CPU空闲时间,提升处理效率。python提供了两个模块来实现多线程thread 和threading ,thread 有一些缺点,在t...【详细内容】
2019-10-28   爬虫  点击:(10)  评论:(0)  加入收藏
很多程序员都很清楚一个专属名词,那就是——爬虫,而大多数网友对于这个词语还比较陌生,属于新鲜的词汇,但是随着互联网的发展,这种网络爬虫其实和我们日常生活息息相关...【详细内容】
2019-10-28   爬虫  点击:(25)  评论:(0)  加入收藏
爬虫应用的广泛,例如搜索引擎、采集数据、广告过滤、数据分析等。当我们对少数网站内容进行爬取时写多个爬虫还是有可能的,但是对于需要爬取多个网站内容的项目来说是不可能编写多个爬虫的,这个时候我们就需要智能爬虫。...【详细内容】
2019-10-18   爬虫  点击:(12)  评论:(0)  加入收藏
一、字符串知识点:bytes:二进制(互联网上数据都是以二进制的方式传输的)str:unicode编码的呈现形式,常用的实现方式是UTF-8str转换为bytes的方法:encode()bytes转换为str的方法:dec...【详细内容】
2019-10-18   爬虫  点击:(19)  评论:(0)  加入收藏
网站的爬虫就是由计算机自动与服务器交互获取数据的工具,爬虫的最基本就是get一个网页的源程序数据,如果更深入一些,就会出现和网页进行POST交互,获取服务器接收POST请求后返回...【详细内容】
2019-10-15   爬虫  点击:(17)  评论:(0)  加入收藏
当我们对某些网站进行爬去的时候,我们经常会换IP来避免爬虫程序被封锁。代理ip地址如何获取?其实也是一个比较简单的操作,目前网络上有很多IP代理商,例如西刺,芝麻,犀牛等等。这些...【详细内容】
2019-10-10   爬虫  点击:(20)  评论:(0)  加入收藏
做了一些小项目,用的技术和技巧会比较散比较杂,写一个小品文记录一下,帮助熟悉。需求:经常在腾讯视频上看电影,在影片库里有一个"豆瓣好评"板块。我一般会在这个条目下面挑电影。...【详细内容】
2019-09-27   爬虫  点击:(14)  评论:(0)  加入收藏
爬虫的编程语言有不少,但 Python 绝对是其中的主流之一。下面就为大家介绍下 Python 在编写网络爬虫常常用到的一些库。请求库:实现 HTTP 请求操作 urllib:一系列用于操作URL...【详细内容】
2019-09-26   爬虫  点击:(35)  评论:(0)  加入收藏
Beautiful Soup库安装pip install beautifulsoup4测试:import requestsr = requests.get("http://python123.io/ws/demo.html")demo = r.textform bs4 import BeautifulSoup...【详细内容】
2019-09-23   爬虫  点击:(30)  评论:(0)  加入收藏
虽然这是一个很久以前的问题。但是看到好多答案的办法有点太重了,这里分享一个效率更优、资源占用更低的方法。 首先请一定记住,浏览器环境对内存和CPU的消耗都非常严重,模拟浏...【详细内容】
2019-09-03   爬虫  点击:(85)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条