python爬虫新浪新闻_学习了《python网络爬虫实战》第一个爬虫,爬取新浪新闻

请安装anaconda,其中附带的spyder方便运行完查看变量

1.进入cmd控制台,

输入 pip install BeautifulSoup4

pip install requests

2.编写代码,代码已经很清晰了,直接运行不会报错并有成功的结果

def getNewsDetail(newsUrl):

import requests

from bs4 import BeautifulSoup

from datetime import datetime

newsWeb = requests.get(newsUrl)

newsWeb.encoding = 'utf-8'

soup = BeautifulSoup(newsWeb.text,'lxml')

result = {}

result['title'] = soup.select('.main-title')[0].text

result['newsSource'] = soup.select('.source')[0].text

timeSource = soup.select('.date')[0].text

result['datetime'] = datetime.strptime(timeSource,'%Y年%m月%d日 %H:%M')

result['article'] = soup.select('.article')[0].text

result['editor'] = soup.select('.show_author')[0].text.strip('责任编辑:')

result['comment'] = soup.select('.num')[0].text

return result

def parseListLinks(url):

import requests

import json

newsDetails = []

request = requests.get(url)

jsonLoad = json.loads(request.text.lstrip(' newsloadercallback(').rstrip(');'))

newsUrls = []

for item in jsonLoad['result']['data']:

newsUrls.append(item['url'])

for url in newsUrls:

newsDetails.append(getNewsDetail(url))

return newsDetails

if __name__ == '__main__':

#获取单个新闻页面的信息

newsUrl = 'http://news.sina.com.cn/s/wh/2018-01-08/doc-ifyqkarr7830426.shtml'

newsDetail = getNewsDetail(newsUrl)

#获取整个列表各个新闻页面的信息

rollUrl='http://api.roll.news.sina.com.cn/zt_list?channel=news&cat_1=gnxw\

&cat_2==gdxw1||=gatxw||=zs-pl||=mtjj&level==1||=2&show_ext=1&show_all=1&\

show_num=22&tag=1&format=json&page=23&callback=newsloadercallback&_=1515911333929'

newsDetails = parseListLinks(rollUrl)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值