一、python请求要抓取的url页面

要抓取的url http://news.baidu.com/ ,先python模拟请求该url

#!/usr/bin/python
# -*- coding:utf-8 -*-import httplibclass NewsBaidu(object):def __init__(self):super(NewsBaidu,self).__init__()def request(self):conn = httplib.HTTPConnection('news.baidu.com')  #请求的hostrequest_url = '/'                                #请求的网页路径body = ''                                        #请求的参数headers = {}                                     #请求所带的头信息,该参数是一个字典                              conn.request('GET',request_url,body,headers)result = conn.getresponse()print u'获取百度新闻'print result.statusprint result.reasonif __name__ == '__main__':nb = NewsBaidu()nb.request()

运行效果

status =200 ,表示请求成功 ,result.read()

二、分析页面HTML

1、我们要抓取的内容,百度新闻左侧的列表的标题、href

2、加载re模块,正则匹配出我们要的内容, 我们先看看HTML样式

这是我们要抓取的上面一部分页面HTML,我们可以看到  <a href="http://www.gov.cn/zhengce/2016-02/22/content_5044753.htm" target="_blank" class="a3" mon="ct=1&amp;a=1&amp;c=top&amp;pn=1">总理发话 科技成果将堂堂正正走出"深闺"</a>   ,包含我们想要的内容, 【总理发话 科技成果将堂堂正正走出"深闺"】   和href这部分的内容 【http://www.gov.cn/zhengce/2016-02/22/content_5044753.htm】  用正则提取出来

pattern = re.compile(r'<strong>.*?href="(.*?)" target="_blank" class="a3" mon="ct=1&a=1&c=top&pn=[0-9]+">(.*?)</a>.*?strong>',re.S)

下面一部分要抓取的HTML内容,我就不再分析,原理都一样。

三、源码

#!/usr/bin/python
# -*- coding:utf-8 -*-import httplib
import urllib
import reclass NewsBaidu(object):def __init__(self):super(NewsBaidu,self).__init__()self.f = open(u'百度新闻.txt','a')def request(self):try:conn = httplib.HTTPConnection('news.baidu.com')  #请求的hostrequest_url = '/'                                #请求的网页路径body = ''                                        #请求的参数headers = {}                                     #请求所带的头信息,该参数是一个字典                              conn.request('GET',request_url,body,headers)result = conn.getresponse()print u'获取百度新闻'print result.statusprint result.reason#print result.read()if result.status == 200:data = result.read()self.main(data)except Exception,e:print efinally:conn.close()self.f.close()def main(self,data):print u'获取中...'pattern = re.compile(r'<strong>.*?href="(.*?)" target="_blank" class="a3" mon="ct=1&a=1&c=top&pn=[0-9]+">(.*?)</a>.*?strong>',re.S)items = re.findall(pattern,data)content = ''for item in items:content +=item[1].strip()+'\t'+item[0].strip()+'\t\n'pattern = re.compile(r'<a href="(.*?)" target="_blank"  mon="r=1">(.*?)</a>',re.S)items = re.findall(pattern,data)for item in items:pattern = re.compile(r'^http://.*<a href="(.*)$',re.S)         #url 对某些url再次正则获取url = re.findall(pattern,item[0])if url:u = url[0]else :u = item[0]content +=item[1].strip()+'\t'+u.strip()+'\t\n'   pattern = re.compile(r'<a href="(.*?)" mon="ct=1&a=2&c=top&pn=[0-9]+" target="_blank">(.*?)</a>',re.S)items = re.findall(pattern,data)del items[0]for item in items:content +=item[1].strip()+'\t'+item[0].strip()+'\t\n'self.f.write(content)print u'完成'if __name__ == '__main__':nb = NewsBaidu()nb.request()

python爬虫(抓取百度新闻列表)相关推荐

  1. python爬虫抓取百度图片_Python爬虫抓取百度的高清摄影图片

    成果预览: 源代码: import requests import re url = 'https://image.baidu.com/search/index' headers = { 'User- ...

  2. Python爬虫抓取百度搜索图片

    最近玩机器学习,想搞一个关于识别动漫图片的训练集,苦于没有太多的动漫图片,后来忽然想到百度图片可以拿来用,于是乎写了个简单的爬虫,用来抓取百度图片(关于某个关键字的图片) 第一步,找到搜索图片的url ...

  3. 使用python爬虫爬取百度新闻,告诉你社会热点话题

    1.网络爬虫基础使用 (1)urllib介绍: urllib中包括了四个模块,包括: urllib.request:可以用来发送request和获取request的结果 urllib.error:包含 ...

  4. python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...

    原标题:使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号 不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓 ...

  5. 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据

    Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...

  6. python爬虫招聘-Python爬虫抓取智联招聘(基础版)

    原标题:Python爬虫抓取智联招聘(基础版) 作者:C与Python实战 「若你有原创文章想与大家分享,欢迎投稿.」 对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪 ...

  7. Python学习教程:Python爬虫抓取技术的门道

    Python学习教程:Python爬虫抓取技术的门道 web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单 ...

  8. 编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法

    这篇文章主要介绍了编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法,用到了Python的urllib和urllib2模块,需要的朋友可以参考下 抓取豆瓣电影TOP100 一.分析豆瓣top ...

  9. Python爬虫抓取某音乐网站MP3(下载歌曲、存入Sqlite)

    Python爬虫抓取某音乐网站MP3(下载歌曲.存入Sqlite) 最近右胳膊受伤,打了石膏在家休息.为了实现之前的想法,就用左手打字.写代码,查资料完成了这个资源小爬虫.网页爬虫, 最主要的是协议分 ...

最新文章

  1. 题目 1470:【蓝桥杯】【入门题】【基础练习VIP】时间转换
  2. Cissp-【第1章 安全和风险管理】-2020-12-31(58页-85页)
  3. 【Android WebSocket】Android 端 WebSocket 基本用法 ( 添加依赖和权限 | 创建 WebSocketClient 客户端类 | 建立连接并发送消息 )
  4. Lazy Load, 延迟加载图片的 jQuery 插件
  5. Buildroot构建指南——工具链
  6. 什么是PermGen泄漏?
  7. java 的类和接口的变量调用
  8. golang-gui编程
  9. php邀请码演示代码,WordPress主题纯代码实现邀请码功能
  10. javaSE回顾---变量
  11. calendR :为你定制私人专属日历
  12. 使用新操作码在比特币现金上进行首次原子竞猜
  13. java ntp授时服务器,时间同步服务器NTP
  14. secoclient免积分下载
  15. bluecms 手把手教你0day挖掘-基础入门篇
  16. 显示器几种常见的接口
  17. vscode编译 不允许使用与号()。 运算符是为将来使用而保留的;请用双引号将与号引起来(““),以将其作为字符串的一部分传递
  18. 曲师大校徽 透明背景 多颜色可选 多样式可选
  19. 国外投资哪些域名比较受欢迎?
  20. python爬取旅游信息_python爬取全国13个城市旅游数据,告诉你那里最受欢迎

热门文章

  1. 参加第一届MSRA博士生论坛的经历
  2. r2dbc mysql_使用R2DBC实现数据库的响应式访问
  3. 人工智能背后的“人工”: 数据标注时薪缩水一半,欠薪高发
  4. 网购车平台易车与汽车之家
  5. OpenGL入门北斗星点绘制
  6. 除智联招聘,还有哪些靠谱的招聘软件呢?
  7. OpenSSL心脏出血漏洞
  8. Chpater2.3 执行AD HOC命令
  9. Apache ECharts的缘起和发展
  10. java udp心跳机制_心跳包机制整理汇总