因为学习需要,想自己弄一些语料玩玩,新闻联播似乎是个不错的选择,然后百度了一下:

感觉还是挺多的。。。。所以我选择了第二个。。就是http://www.xwlbo.com/txt.html这个网址。

看了一下,这个网址是以_1的方式翻页的。

 

一共有47页,数据追溯到

2015年12月24日新闻联播主要内容

似乎还可以。。。。

分析了下源代码。列表页的文章是用一个列表维护的:

文章内的文字爬取难度一般,但是比较乱

我的思路是:

    先爬取文章ID号,再遍历ID号爬一遍各个ID下的新闻的内容

那就, 直接上代码:

python爬虫爬取网站内容时,如果什么也没带,即不带报头headers,往往会被网站管理维护人员认定为机器爬虫,所以我们需要伪装浏览器的user-agent。

这个是网上的模板,用来随机组成User-Agent
#settings.py  
User_Agents =['Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50','Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0','Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1','Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11','Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
]

获取文章的ID号

import random
import re
import requests
import codecs
from spider.settings import  User_Agentsclass ID_Spider(object):def __init__(self):#URLself.ur1 = "http://www.xwlbo.com/txt_"self.ur2 = ".html"#Headersself.headers = {'User-Agent': random.choice(User_Agents)}self.output = open('d:\id.txt','w+')def down_(self,offset):resp = Nonetry:resp = requests.get(self.ur1 + str(offset) + self.ur2 , headers = self.headers)except Exception as e:print(resp)return respdef get_(self,resp):reg = r'li><span>(.*?)</a></li>{1}'if resp:return re.findall(reg ,resp.text ,re.S)def id_(self,ss):for t in ss:# dr = re.compile(r'</span> <a target="_blank" href=')dd = re.sub(r'</span> <a target="_blank" href=','', t)# dr = re.findall(r'http://www.xwlbo.com/[0-9]*.html',dd)dr = re.findall(r'\d{4,5}',dd)# id = re.findall(r'\\d',dr)try:print(dr[0])self.output.write(dr[0])self.output.write('\n')except Exception as e:continuedef main():ids = ID_Spider()offset = 1while(offset <= 47):ids.id_(ids.get_(ids.down_(offset)))offset += 1if __name__ == '__main__':main()

获取文章

import random
import reimport time

import requestsfrom spider.settings import  User_Agentsid_file = open('d:\id','r')

class NEWS_Spider(object):    def __init__(self):        #URL        self.ur1 = "http://www.xwlbo.com/"        self.ur2 = ".html"        #Headers        self.headers = {'User-Agent': random.choice(User_Agents)}        self.output = open('d:\\news.txt','w+')

    def down_(self,id):        resp = None        try:            resp = requests.get(self.ur1 + str(id) + self.ur2 , headers = self.headers)        except Exception as e:            print(resp)        print(resp)        return resp

    def get_(self,resp):        reg = r'<p><strong><a href="\d{4,5}.html">(.*?)</p>          </div>{1}'        # reg = r'body>(.*?)</body>{1}'        if resp:            return re.findall(reg ,resp.text ,re.S)

    def news_(self,ss):        try:            ss = re.sub(r'<[^>]*>','',str(ss))            ss = re.sub(r'(新闻联播文字版)','',str(ss))            ss = re.sub(r'\*屏蔽的关键字\*', '', str(ss))            ss = re.sub(r"\['",'',str(ss))            ss = re.sub(r"']",'',str(ss))            self.output.write(ss)        except Exception as e:            print(ss)

def main():    news = NEWS_Spider()    list = []    list = id_file.readlines()    for i in list:        news.news_(news.get_(news.down_(int(i))))    # print(news.down_(i))        # time.sleep(100000)

if __name__ == '__main__':    main()
 

其实我两个爬虫的代码几乎一样。稍微有点改动。因为刚刚学习,所以技术欠佳。

然后,大概就是这样,数据就弄好了。

转载于:https://www.cnblogs.com/pipemm/articles/11013790.html

自己做语料——Python爬取新闻联播文字版相关推荐

  1. python爬取一条新闻内容_自己做语料——Python爬取新闻联播文字版

    因为学习需要,想自己弄一些语料玩玩,新闻联播似乎是个不错的选择,然后百度了一下: 感觉还是挺多的....所以我选择了第二个..就是http://www.xwlbo.com/txt.html这个网址. ...

  2. python怎么查看网页编码格式_怎么用python爬取网页文字?

    用Python进行爬取网页文字的代码:#!/usr/bin/python# -*- coding: UTF-8 -*-import requestsimport re# 下载一个网页url = 'ht ...

  3. python爬网页文字_怎么用python爬取网页文字?

    用Python进行爬取网页文字的代码:#!/usr/bin/python # -*- coding: UTF-8 -*- import requests import re # 下载一个网页 url  ...

  4. 用python实现网络查重(python爬取网页文字[网页结构不一致;网页编码格式];txt文本分割;chrome驱动;python计算文章余弦相似度)

    最近做项目有一个小功能是对用户上传的文章进行简单的网络查重.就是搜索特定主题,用这个关键词去在网上搜索文章再爬取.其中也借鉴了其他大佬的代码和文章,文章中会贴出.自己记录以下,以免日后遗忘.主要分为以 ...

  5. python爬取股票信息—简略版(沪股)

    简单写了个爬虫爬取东方财富网的股票信息,运用pandas将数据存储在excel表中. # -*- codeing = utf-8 -*- # @Time : 2021/3/2 18:10 # @Aut ...

  6. python爬取网页文字和图片_简单的爬虫:爬取网站内容正文与图片

    我们来写个简单的爬虫#### 需要用到的模块 需要用到python的urllib和lxml模块,urllib为python的自带模块,lxml需要自行安装:pip install lxml 简单介绍u ...

  7. 使用Python爬取“最好大学网”软科中国最好大学排名2019并做可视化分析

    使用Python爬取"最好大学网"软科中国最好大学排名2019并做可视化分析 简介 开发环境 爬取数据 1.获取网站页面 2.解析网页内容 3.存储数据 可视化分析 基本设置 显示 ...

  8. Python爬取《你好李焕英》豆瓣短评并基于SnowNLP做情感分析

    爬取过程在这里: Python爬取你好李焕英豆瓣短评并利用stylecloud制作更酷炫的词云图 本文基于前文爬取生成的douban.txt,基于SnowNLP做情感分析. 依赖库: 豆瓣镜像比较快: ...

  9. python爬虫用什么电脑好_【Python】【爬虫】最近想买电脑,用Python爬取京东评论做个参考...

    最近想换电脑,又有点不确定买哪一款.所以决定爬取京东上电脑评论,做个参考,并把最终结果绘制成词云图. 一.先来看下三款电脑评价的词云图 1 用Python爬取京东自营ThinkPad T490s的评论 ...

  10. 使用python爬取BOSS直聘岗位数据并做可视化(Boss直聘对网页做了一些修改,现在的代码已经不能用了)

    使用python爬取BOSS直聘岗位数据并做可视化 结果展示 首页 岗位信息 岗位详情 薪资表 学历需求 公司排名 岗位关键词 福利关键词 代码展示 爬虫代码 一.导入库 二.爬取数据 1.爬取数据代 ...

最新文章

  1. C语言实现阿姆斯特朗数armstrong number算法(附完整源码)
  2. DHCP***的防御处理总结
  3. ABP Framework:移除 EF Core Migrations 项目,统一数据上下文
  4. Dotnet Core异常处理的优雅实践
  5. java 查找链表中间元素_java查找链表中间元素_如何通过Java单次查找链表的中间元素...
  6. 2019 下半年,程序员怎么过?
  7. java虚拟机安装_java虚拟机官方下载|Java Virtual Machine(java虚拟机)下载v5.0官方版 附安装教程 - 欧普软件下载...
  8. 如何导出微信聊天记录
  9. 计算机应用基础免费文档课件,计算机应用基础的课件.doc
  10. jsp如何使用kindeditor
  11. 用python进行因式分解_Python实现的质因式分解算法示例
  12. VIM 参 考 手 册
  13. Git分布式版本管理工具
  14. 备案 - 多个域名同时备案
  15. 编程之美——找符合条件的整数
  16. Winmail 邮件服务器的「架设与使用」
  17. 陕西美食羊肉泡馍,舌尖上的美感
  18. 点击率(CTR)平滑手段
  19. Python学习--Day07--正则表达式
  20. 求的带权图最小生成树的Prim算法和Kruskal算法

热门文章

  1. Ubuntu下启动图形界面startx报错connection to X server lost
  2. php安全挑战赛,TSRC挑战赛: PHP场景中getshell防御思路分享
  3. 服务器返回json中显示403,接口返回了403错误如何解决?
  4. 小时候的蓝精灵,大家还记得木有哇?
  5. 春风吹又生(1年工作经验感悟)
  6. IDEA启动My Eclipse项目
  7. 35岁不是程序员职场中的绊脚石
  8. android怎么删除插件,Android手机如何添加删除桌面图标和插件
  9. Android实现选择相册图片---类似微信的选择图片页面
  10. 如何读懂和利用你的微生物多样性测序结果?