python爬取一条新闻内容_Python爬取网站新闻

准备###

本实例使用辅助工具Fiddler抓取网页数据和使用文档查看工具sublime正则过滤(也可使用其它文档编辑工具),python开发工具使用Pycharm编辑

我们选取搜狐网的新闻页面进行爬取,对搜狐新闻以列表的形式显示出来。首先我们打开Fiddler 添加一个Filters,将搜狐网址放入Filters,在浏览器访问搜狐新闻网并刷新,从Fiddler中选中该访问记录,找出请求数据:

989555-20200206200013186-1990753021.png

我们将Raw中的内容复制到sublime中:

989555-20200206200241631-90846583.png

选取User-Agent中的内容

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'作为我们访问数据的头文件,并选中http://www.sohu.com/c/8/进行访问,可以查看到新闻页面:

989555-20200206200358352-1197859858.png

我们将http://www.sohu.com/c/8/作为我们爬取数据的url。

在页面中右击查看页面源代码,查看源代码并复制到sublime中,在sublime中进行查找并输入(点击左下角的正则过滤:.*)target="_blank">(.*)可以查看到新闻标题,我们将target="_blank">(.*)作为正则表达式的匹配内容

程序实现###

class HandleNews(object):

def __init__(self):

self.request = requests.session()

# self.head = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' \

# 'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'

self.header={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',

}

self.newslist = ''

def handle_list(self):

handle_patten=re.compile(r'target="_blank">(.*)')

handle_url='http://www.sohu.com/c/8'

handle_news=self.handle_request(methon='GET',url=handle_url,head=self.header)

self.newslist=re.findall(handle_patten,handle_news)

def handle_request(self,methon,url,head,data=None , info=None):

if methon == 'GET':

handle_respone=self.request.get(url=url,headers=head)

else:

handle_respone=' '

return handle_respone.text

if __name__ == '__main__':

handle=HandleNews()

handle.handle_list()

print(handle.newslist)

其中我们需要引用requests和re模块(用于正则表达式匹配)

import requests import re

运行结果:

989555-20200206201907193-916353221.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值