小爬新浪新闻AFCCL

Posted Jasonhaven.D

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小爬新浪新闻AFCCL相关的知识,希望对你有一定的参考价值。

1.任务目标:

爬取新浪新闻AFCCL的文章:文章标题、时间、来源、内容、评论数等信息。

2.目标网页:

http://sports.sina.com.cn/z/AFCCL/

3.网页分析

4.源代码:

#!/usr/bin/env/python
# coding:utf-8
import sys
import requests
from bs4 import BeautifulSoup
import json
import re
if __name__ == \'__main__\':
	url = \'http://sports.sina.com.cn/z/AFCCL/\'
	res = requests.get(url)
	html_doc = res.content

	soup = BeautifulSoup(html_doc, \'html.parser\')

	a_list=[]
	#爬取新闻时间,标题,链接
	for news in  soup.select(\'.news-item\'):
		if(len(news.select(\'h2\'))>0):
			h2=news.select(\'h2\')[0].text
			a=news.select(\'a\')[0][\'href\']
			time=news.select(\'.time\')[0].text
			# print(time,h2,a)
			a_list.append(a)
	#爬取内文资料
	for i in range(len(a_list)):
		url=a_list[i]
		res = requests.get(url)
		html_doc = res.content
		soup = BeautifulSoup(html_doc, \'html.parser\')
		#获取文章标题、时间、来源、内容,评论数
		title=soup.select(\'#j_title\')
		if title:
			title = soup.select(\'#j_title\')[0].text.strip()
			time = soup.select(\'.article-a__time\')[0].text.strip()
			source = soup.select(\'.article-a__source\')[0].text.strip()
			content = soup.select(\'.article-a__content\')[0].text.strip()
			#动态生成获取评论的Ajax url eg:\'http://comment5.news.sina.com.cn/page/info?version=1&format=js&channel=ty&newsid=comos-fykiuaz1429964&group=&compress=0&ie=utf-8&oe=utf-8&page=1&page_size=20&jsvar=loader_1504416797470_64712661\'
			# print(url)
			pattern_id=r\'(fyk\\w*).s?html\'
			# print(re.search(pattern_id,url).group(1))
			id=re.search(pattern_id,url).group(1)
			url=\'http://comment5.news.sina.com.cn/page/info?version=1&format=js&channel=ty&newsid=comos-\'+id+\'&group=&compress=0&ie=utf-8&oe=utf-8&page=1&page_size=20\'
			comments = requests.get(url)
			jd=json.loads(comments.text.strip(\'var data=\'))
			commentCount = jd[\'result\'][\'count\'][\'total\'] # 评论数
			print(time,title,source,content)
			print(commentCount)

5.运行结果:

6.小结:

对于一次请求获得的资源爬取是比较顺利的,对于异步请求的资源需要查看检查器,寻找资源所在请求,正对性的爬取。

eg:“评论及评论数”的爬取。

以上是关于小爬新浪新闻AFCCL的主要内容,如果未能解决你的问题,请参考以下文章

20170425开始我的爬虫之路

Python爬取新浪新闻(存入MySQL,EXCEL)

Python抓取新浪新闻数据

python2.7 爬虫初体验爬取新浪国内新闻_20161130

Python 爬虫实例—— 爬取 新浪军事新闻

新浪新闻下载|新浪新闻app手机版下载