我们打开新浪新闻,看到页面如下,首先去爬取一级 url,图片中蓝色圆圈部分

第二zh张图片,显示需要分页,

源代码:

  1. # coding:utf-8
  2.  
  3. import json
  4. import redis
  5. import time
  6. import requests
  7. session = requests.session()
  8. import logging.handlers
  9. import pickle
  10. import sys
  11. import re
  12. import datetime
  13. from bs4 import BeautifulSoup
  14.  
  15. import sys
  16. reload(sys)
  17. sys.setdefaultencoding('utf8')
  18.  
  19. import datetime
  20. # 生成一年的日期
  21. def dateRange(start, end, step=1, format="%Y-%m-%d"):
  22. strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime
  23. days = (strptime(end, format) - strptime(start, format)).days
  24. return [strftime(strptime(start, format) + datetime.timedelta(i), format) for i in xrange(0, days, step)]
  25.  
  26. def spider():
  27.  
  28. date_list = dateRange("2017-01-01", "2018-01-06")[::-1]
  29. print date_list
  30. for date in date_list:
  31. for page in range(1,5):
  32. #组合url
  33. url = "http://roll.mil.news.sina.com.cn/col/zgjq/" + str(date)+"_"+ str(page) +".shtml"
  34. # 伪装请求头
  35. headers = {
  36.  
  37. "Host":"roll.mil.news.sina.com.cn",
  38.  
  39. "Cache-Control":"max-age=0",
  40. "Upgrade-Insecure-Requests":"",
  41. "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
  42. "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
  43.  
  44. "Accept-Encoding":"gzip, deflate",
  45. "Accept-Language":"zh-CN,zh;q=0.8",
  46. "If-Modified-Since":"Sat, 06 Jan 2018 09:57:24 GMT",
  47.  
  48. }
  49.  
  50. result = session.get(url=url,headers=headers).content
  51. #编码格式是 gb2312,使用BeautifulSoup解决编码格式
  52. soup = BeautifulSoup(result,'html.parser')
  53. #找到新闻列表
  54. result_div = soup.find_all('div',attrs={"class":"fixList"})[0]
  55. #去下换行
  56. result_replace = str(result_div).replace('\n','').replace('\r','').replace('\t','')
  57. #正则匹配信息
  58. result_list = re.findall('<li>(.*?)</li>',result_replace)
  59.  
  60. for i in result_list:
  61. #匹配出来新闻 url, name,time
  62.  
  63. news_url = re.findall('<a href="(.*?)" target=',i)[0]
  64. news_name = re.findall('target="_blank">(.*?)</a>',i)[0]
  65. news_time = re.findall('<span class="time">\((.*?)\)</span>',i)[0]
  66.  
  67. print news_url
  68. print news_name
  69. print news_time
  70.  
  71. spider()

Python 爬虫实例(7)—— 爬取 新浪军事新闻的更多相关文章

  1. Python爬虫实例:爬取猫眼电影——破解字体反爬

    字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...

  2. Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取

    很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...

  3. Python爬虫实例:爬取豆瓣Top250

    入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...

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

    python2.7 爬虫初学习 模块:BeautifulSoup requests 1.获取新浪国内新闻标题 2.获取新闻url 3.还没想好,想法是把第2步的url 获取到下载网页源代码 再去分析源 ...

  5. Python爬虫教程-17-ajax爬取实例(豆瓣电影)

    Python爬虫教程-17-ajax爬取实例(豆瓣电影) ajax: 简单的说,就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: ...

  6. [python爬虫] Selenium定向爬取虎扑篮球海量精美图片

    前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员 ...

  7. Python3:爬取新浪、网易、今日头条、UC四大网站新闻标题及内容

    Python3:爬取新浪.网易.今日头条.UC四大网站新闻标题及内容 以爬取相应网站的社会新闻内容为例: 一.新浪: 新浪网的新闻比较好爬取,我是用BeautifulSoup直接解析的,它并没有使用J ...

  8. 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

    原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...

  9. selenium+BeautifulSoup+phantomjs爬取新浪新闻

    一 下载phantomjs,把phantomjs.exe的文件路径加到环境变量中,也可以phantomjs.exe拷贝到一个已存在的环境变量路径中,比如我用的anaconda,我把phantomjs. ...

随机推荐

  1. Codeforces 1027D Mouse Hunt (强连通缩点 || DFS+并查集)

    <题目链接> 题目大意: 有n个房间,每个房间都会有一只老鼠.处于第i个房间的老鼠可以逃窜到第ai个房间中.现在要清理掉所有的老鼠,而在第i个房间中防止老鼠夹的花费是ci,问你消灭掉所有老 ...

  2. Oracle内置存储过程之DBMS_OUTPUT

    1.DBMS_OUTPUT 1.1 作用: 调试PL/SQL程序 1.2 相关函数: 命令 作用 备注 enable 在serveroutput on的情况下,用来使dbms_output生效(默认即 ...

  3. SpringBoot整合elasticsearch

    在这一篇文章开始之前,你需要先安装一个ElasticSearch,如果你是mac或者linux可以参考https://www.jianshu.com/p/e47b451375ea,如果是windows ...

  4. 错误类型“Microsoft.Office.Interop.Word.ApplicationClass”未定义构造函数

    原文网址:http://zhidao.baidu.com/link?url=WcvaYFI1JeEGvbjD77nDbGp21sjaNCnCTRLGrU5YjwUGbHbhHJxQolKbsMZbZs ...

  5. 初识 阿里云 SSL 证书申请

    去你尼玛的大QQ ,一个 SSL 证书,花了我一整天时间,特意在此记载,为后面的小伙伴参考 最近在开发小程序,小程序规定要使用 https 协议,那我能怎么办?去申请啊,傻逼 阿里云的 SSL 证书申 ...

  6. 2154 杭电 数学规律 ACM

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2154 很简单的找规律的数学题目: 思路:因为挑完N次后都要跳回A,所以相当于挑N-1次后必须留在B C区域 ...

  7. lxml的使用

    from urllib import request from lxml import etree # url = '''http://bangumi.tv/anime/browser?sort=ra ...

  8. vue使用element-ui的el-input监听不了回车事件

    原因 今天在使用element-ui时,el-input组件监听不了回车事件,如下代码没有想要的效果: <el-input class="search-input" plac ...

  9. python之组合与重用性

    1 组合 组合的概念:软件重用的重要方式除了继承之外还有另外一种方式,即:组合 组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合 >>> class Equip: ...

  10. Grok patterns 汇总

    S3_REQUEST_LINE (?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawreques ...