Python 爬虫实例(7)—— 爬取 新浪军事新闻
我们打开新浪新闻,看到页面如下,首先去爬取一级 url,图片中蓝色圆圈部分
第二zh张图片,显示需要分页,
源代码:
- # coding:utf-8
- import json
- import redis
- import time
- import requests
- session = requests.session()
- import logging.handlers
- import pickle
- import sys
- import re
- import datetime
- from bs4 import BeautifulSoup
- import sys
- reload(sys)
- sys.setdefaultencoding('utf8')
- import datetime
- # 生成一年的日期
- def dateRange(start, end, step=1, format="%Y-%m-%d"):
- strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime
- days = (strptime(end, format) - strptime(start, format)).days
- return [strftime(strptime(start, format) + datetime.timedelta(i), format) for i in xrange(0, days, step)]
- def spider():
- date_list = dateRange("2017-01-01", "2018-01-06")[::-1]
- print date_list
- for date in date_list:
- for page in range(1,5):
- #组合url
- url = "http://roll.mil.news.sina.com.cn/col/zgjq/" + str(date)+"_"+ str(page) +".shtml"
- # 伪装请求头
- headers = {
- "Host":"roll.mil.news.sina.com.cn",
- "Cache-Control":"max-age=0",
- "Upgrade-Insecure-Requests":"",
- "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
- "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
- "Accept-Encoding":"gzip, deflate",
- "Accept-Language":"zh-CN,zh;q=0.8",
- "If-Modified-Since":"Sat, 06 Jan 2018 09:57:24 GMT",
- }
- result = session.get(url=url,headers=headers).content
- #编码格式是 gb2312,使用BeautifulSoup解决编码格式
- soup = BeautifulSoup(result,'html.parser')
- #找到新闻列表
- result_div = soup.find_all('div',attrs={"class":"fixList"})[0]
- #去下换行
- result_replace = str(result_div).replace('\n','').replace('\r','').replace('\t','')
- #正则匹配信息
- result_list = re.findall('<li>(.*?)</li>',result_replace)
- for i in result_list:
- #匹配出来新闻 url, name,time
- news_url = re.findall('<a href="(.*?)" target=',i)[0]
- news_name = re.findall('target="_blank">(.*?)</a>',i)[0]
- news_time = re.findall('<span class="time">\((.*?)\)</span>',i)[0]
- print news_url
- print news_name
- print news_time
- spider()
Python 爬虫实例(7)—— 爬取 新浪军事新闻的更多相关文章
- Python爬虫实例:爬取猫眼电影——破解字体反爬
字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...
- Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取
很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...
- Python爬虫实例:爬取豆瓣Top250
入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...
- python2.7 爬虫初体验爬取新浪国内新闻_20161130
python2.7 爬虫初学习 模块:BeautifulSoup requests 1.获取新浪国内新闻标题 2.获取新闻url 3.还没想好,想法是把第2步的url 获取到下载网页源代码 再去分析源 ...
- Python爬虫教程-17-ajax爬取实例(豆瓣电影)
Python爬虫教程-17-ajax爬取实例(豆瓣电影) ajax: 简单的说,就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: ...
- [python爬虫] Selenium定向爬取虎扑篮球海量精美图片
前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员 ...
- Python3:爬取新浪、网易、今日头条、UC四大网站新闻标题及内容
Python3:爬取新浪.网易.今日头条.UC四大网站新闻标题及内容 以爬取相应网站的社会新闻内容为例: 一.新浪: 新浪网的新闻比较好爬取,我是用BeautifulSoup直接解析的,它并没有使用J ...
- 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...
- selenium+BeautifulSoup+phantomjs爬取新浪新闻
一 下载phantomjs,把phantomjs.exe的文件路径加到环境变量中,也可以phantomjs.exe拷贝到一个已存在的环境变量路径中,比如我用的anaconda,我把phantomjs. ...
随机推荐
- Codeforces 1027D Mouse Hunt (强连通缩点 || DFS+并查集)
<题目链接> 题目大意: 有n个房间,每个房间都会有一只老鼠.处于第i个房间的老鼠可以逃窜到第ai个房间中.现在要清理掉所有的老鼠,而在第i个房间中防止老鼠夹的花费是ci,问你消灭掉所有老 ...
- Oracle内置存储过程之DBMS_OUTPUT
1.DBMS_OUTPUT 1.1 作用: 调试PL/SQL程序 1.2 相关函数: 命令 作用 备注 enable 在serveroutput on的情况下,用来使dbms_output生效(默认即 ...
- SpringBoot整合elasticsearch
在这一篇文章开始之前,你需要先安装一个ElasticSearch,如果你是mac或者linux可以参考https://www.jianshu.com/p/e47b451375ea,如果是windows ...
- 错误类型“Microsoft.Office.Interop.Word.ApplicationClass”未定义构造函数
原文网址:http://zhidao.baidu.com/link?url=WcvaYFI1JeEGvbjD77nDbGp21sjaNCnCTRLGrU5YjwUGbHbhHJxQolKbsMZbZs ...
- 初识 阿里云 SSL 证书申请
去你尼玛的大QQ ,一个 SSL 证书,花了我一整天时间,特意在此记载,为后面的小伙伴参考 最近在开发小程序,小程序规定要使用 https 协议,那我能怎么办?去申请啊,傻逼 阿里云的 SSL 证书申 ...
- 2154 杭电 数学规律 ACM
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2154 很简单的找规律的数学题目: 思路:因为挑完N次后都要跳回A,所以相当于挑N-1次后必须留在B C区域 ...
- lxml的使用
from urllib import request from lxml import etree # url = '''http://bangumi.tv/anime/browser?sort=ra ...
- vue使用element-ui的el-input监听不了回车事件
原因 今天在使用element-ui时,el-input组件监听不了回车事件,如下代码没有想要的效果: <el-input class="search-input" plac ...
- python之组合与重用性
1 组合 组合的概念:软件重用的重要方式除了继承之外还有另外一种方式,即:组合 组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合 >>> class Equip: ...
- Grok patterns 汇总
S3_REQUEST_LINE (?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawreques ...