自己做语料——Python爬取新闻联播文字版
因为学习需要,想自己弄一些语料玩玩,新闻联播似乎是个不错的选择,然后百度了一下:
感觉还是挺多的。。。。所以我选择了第二个。。就是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爬取新闻联播文字版相关推荐
- python爬取一条新闻内容_自己做语料——Python爬取新闻联播文字版
因为学习需要,想自己弄一些语料玩玩,新闻联播似乎是个不错的选择,然后百度了一下: 感觉还是挺多的....所以我选择了第二个..就是http://www.xwlbo.com/txt.html这个网址. ...
- python怎么查看网页编码格式_怎么用python爬取网页文字?
用Python进行爬取网页文字的代码:#!/usr/bin/python# -*- coding: UTF-8 -*-import requestsimport re# 下载一个网页url = 'ht ...
- python爬网页文字_怎么用python爬取网页文字?
用Python进行爬取网页文字的代码:#!/usr/bin/python # -*- coding: UTF-8 -*- import requests import re # 下载一个网页 url ...
- 用python实现网络查重(python爬取网页文字[网页结构不一致;网页编码格式];txt文本分割;chrome驱动;python计算文章余弦相似度)
最近做项目有一个小功能是对用户上传的文章进行简单的网络查重.就是搜索特定主题,用这个关键词去在网上搜索文章再爬取.其中也借鉴了其他大佬的代码和文章,文章中会贴出.自己记录以下,以免日后遗忘.主要分为以 ...
- python爬取股票信息—简略版(沪股)
简单写了个爬虫爬取东方财富网的股票信息,运用pandas将数据存储在excel表中. # -*- codeing = utf-8 -*- # @Time : 2021/3/2 18:10 # @Aut ...
- python爬取网页文字和图片_简单的爬虫:爬取网站内容正文与图片
我们来写个简单的爬虫#### 需要用到的模块 需要用到python的urllib和lxml模块,urllib为python的自带模块,lxml需要自行安装:pip install lxml 简单介绍u ...
- 使用Python爬取“最好大学网”软科中国最好大学排名2019并做可视化分析
使用Python爬取"最好大学网"软科中国最好大学排名2019并做可视化分析 简介 开发环境 爬取数据 1.获取网站页面 2.解析网页内容 3.存储数据 可视化分析 基本设置 显示 ...
- Python爬取《你好李焕英》豆瓣短评并基于SnowNLP做情感分析
爬取过程在这里: Python爬取你好李焕英豆瓣短评并利用stylecloud制作更酷炫的词云图 本文基于前文爬取生成的douban.txt,基于SnowNLP做情感分析. 依赖库: 豆瓣镜像比较快: ...
- python爬虫用什么电脑好_【Python】【爬虫】最近想买电脑,用Python爬取京东评论做个参考...
最近想换电脑,又有点不确定买哪一款.所以决定爬取京东上电脑评论,做个参考,并把最终结果绘制成词云图. 一.先来看下三款电脑评价的词云图 1 用Python爬取京东自营ThinkPad T490s的评论 ...
- 使用python爬取BOSS直聘岗位数据并做可视化(Boss直聘对网页做了一些修改,现在的代码已经不能用了)
使用python爬取BOSS直聘岗位数据并做可视化 结果展示 首页 岗位信息 岗位详情 薪资表 学历需求 公司排名 岗位关键词 福利关键词 代码展示 爬虫代码 一.导入库 二.爬取数据 1.爬取数据代 ...
最新文章
- C语言实现阿姆斯特朗数armstrong number算法(附完整源码)
- DHCP***的防御处理总结
- ABP Framework:移除 EF Core Migrations 项目,统一数据上下文
- Dotnet Core异常处理的优雅实践
- java 查找链表中间元素_java查找链表中间元素_如何通过Java单次查找链表的中间元素...
- 2019 下半年,程序员怎么过?
- java虚拟机安装_java虚拟机官方下载|Java Virtual Machine(java虚拟机)下载v5.0官方版 附安装教程 - 欧普软件下载...
- 如何导出微信聊天记录
- 计算机应用基础免费文档课件,计算机应用基础的课件.doc
- jsp如何使用kindeditor
- 用python进行因式分解_Python实现的质因式分解算法示例
- VIM 参 考 手 册
- Git分布式版本管理工具
- 备案 - 多个域名同时备案
- 编程之美——找符合条件的整数
- Winmail 邮件服务器的「架设与使用」
- 陕西美食羊肉泡馍,舌尖上的美感
- 点击率(CTR)平滑手段
- Python学习--Day07--正则表达式
- 求的带权图最小生成树的Prim算法和Kruskal算法
热门文章
- Ubuntu下启动图形界面startx报错connection to X server lost
- php安全挑战赛,TSRC挑战赛: PHP场景中getshell防御思路分享
- 服务器返回json中显示403,接口返回了403错误如何解决?
- 小时候的蓝精灵,大家还记得木有哇?
- 春风吹又生(1年工作经验感悟)
- IDEA启动My Eclipse项目
- 35岁不是程序员职场中的绊脚石
- android怎么删除插件,Android手机如何添加删除桌面图标和插件
- Android实现选择相册图片---类似微信的选择图片页面
- 如何读懂和利用你的微生物多样性测序结果?