前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

基本开发环境

Python 3.6

Pycharm

import parsel

import requests

import re

目标网页分析

今天就爬取新闻网中的国际新闻栏目

点击显示更多新闻内容

可以看到相关的数据接口,里面有新闻标题以及新闻详情的url地址

如何提取url地址

1、转成json,键值对取值;

2、用正则表达式匹配url地址;

两种方法都可以实现,看个人喜好

根据接口数据链接中的pager 变化进行翻页,其对应的就是页码。

详情页可以看到新闻内容都是在 div标签里面 p 标签内,按照正常的解析网站即可获取新闻内容。

保存方式

1、你可以保存txt文本形式

2、也可以保存成PDF形式

之前也讲过关于爬取文章内容保存成 PDF ,可以点击下方链接查看相关保存方式。

本篇文章的话,就使用保存txt文本的形式吧。

整体爬取思路总结

在栏目列表页中,点击更多新闻内容,获取接口数据url

接口数据url中返回的数据内容中匹配新闻详情页url

使用常规解析网站操作(re、css、xpath)提取新闻内容

保存数据

代码实现

获取网页源代码

def get_html(html_url):

"""

获取网页源代码 response

:param html_url: 网页url地址

:return: 网页源代码

"""

response = requests.get(url=html_url, headers=headers)

return response

获取每篇新闻url地址

def get_page_url(html_data):

"""

获取每篇新闻url地址

:param html_data: response.text

:return: 每篇新闻的url地址

"""

page_url_list = re.findall('"url":"(.*?)"', html_data)

return page_url_list

文件保存命名不能含有特殊字符,需要对新闻标题进行处理

def file_name(name):

"""

文件命名不能携带 特殊字符

:param name: 新闻标题

:return: 无特殊字符的标题

"""

replace = re.compile(r'[\\\/\:\*\?\"\\|]')

new_name = re.sub(replace, '_', name)

return new_name

保存数据

def download(content, title):

"""

with open 保存新闻内容 txt

:param content: 新闻内容

:param title: 新闻标题

:return:

"""

path = '新闻\\' + title + '.txt'

with open(path, mode='a', encoding='utf-8') as f:

f.write(content)

print('正在保存', title)

主函数

def main(url):

"""

主函数

:param url: 新闻列表页 url地址

:return:

"""

html_data = get_html(url).text # 获得接口数据response.text

lis = get_page_url(html_data) # 获得新闻url地址列表

for li in lis:

page_data = get_html(li).content.decode('utf-8', 'ignore') # 新闻详情页 response.text

selector = parsel.Selector(page_data)

title = re.findall('

(.*?)', page_data, re.S)[0] # 获取新闻标题

new_title = file_name(title)

new_data = selector.css('#cont_1_1_2 div.left_zw p::text').getall()

content = ''.join(new_data)

download(content, new_title)

if __name__ == '__main__':

for page in range(1, 101):

url_1 = 'https://channel.chinanews.com/cns/cjs/gj.shtml?pager={}&pagenum=9&t=5_58'.format(page)

main(url_1)

运行效果图

python爬取网页新闻_Python爬取新闻网数据相关推荐

  1. python爬取网站新闻_Python爬取网站新闻

    ###准备### 本实例使用辅助工具Fiddler抓取网页数据和使用文档查看工具sublime正则过滤(也可使用其它文档编辑工具),python开发工具使用Pycharm编辑 我们选取搜狐网的新闻页面 ...

  2. python爬取学校新闻_Python抓取学院新闻报告

    们发现,我们能够直接在新闻详情页面抓取到我们需要的数据:标题,时间,内容.URL. 好,到现在我们清楚抓取一篇新闻的思路了.但是,如何抓取所有的新闻内容呢? 这显然难不到我们. 我们在新闻栏目的最下方 ...

  3. python爬取图文新闻_python爬取新闻需要什么软件

    2017-02-16 回答 需求: 从门户网站爬取新闻,将新闻标题,作者,时间,内容保存到本地txt中. 用到的python模块: import re  # 正则表达式 import bs4  # b ...

  4. python如何爬取网页视频_python爬取网站的MV视频

    [PHP] 纯文本查看 复制代码<?php error_reporting(0); include "./inc/aik.config.php"; if (!$_GET[&q ...

  5. python抓取网页信息_python抓取网页中的动态数据

    一.概念 网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念,动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到浏览器 ...

  6. python爬虫爬取网页新闻标题-看完保证你会

    python爬虫爬取网页新闻标题方法 1.首先使用浏览自带的工具--检查,查找网页新闻标题对应的元素位置,这里查到的新闻标题是在 h3 标签中 2.然后使用编辑器编写python代码 2.1方法一: ...

  7. python爬百度新闻_13、web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息...

    crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息, ...

  8. Python+Selenium动态网页的信息爬取

    录 一.Selenium 1.1 简介 1.2 配置 二.对百度进行自动化测试 2.1 进入百度搜索界面 2.2 自动填充百度网页的查询关键字并完成自动搜索 三.爬取指定网页的名言 3.1 找到元素 ...

  9. 【用Java爬取网页图片——爬虫爬取数据】

    用Java爬取网页图片--爬虫爬取数据 1.在创建项目中导入jsoup 2.创建一个保存下载图片的路径 3.使用URL读取网页路径,jsoup读取网页内容 4.利用属性标签获取图片连接块 5.因为该路 ...

最新文章

  1. 如果优美的将pytorch的卷积为自己所用
  2. iOS10 UI教程视图的几何形状
  3. online_judge_1046
  4. asp mysql insert_用asp把表单数据插入数据库的2种常用方法
  5. rabbitmq 不同的消费者消费同一个队列_RabbitMQ 消费端限流、TTL、死信队列
  6. SQL Server 占用内存太高,查找占用内存高以及影响其性能的sql语句
  7. 小白入职AI数据工程师
  8. 【Docker】安装并测试安装成功
  9. python携程gevent_Python协程介绍以及优缺点 Greentlet和Gevent的使用
  10. input html5 新特性,html5 input 新特性
  11. react ajax组件,javascript – 我可以将ajax放在React组件构造函数中吗?
  12. rainmeter使用教程_如何使用Rainmeter自定义Windows桌面
  13. 【C语言】pow函数的模拟实现(递归)
  14. StyleGAN2 解释
  15. 迪斯科算法_为什么迪斯科极乐世界如此可重播
  16. 用Cocos Creator 做了一个模拟股票游戏
  17. App 调试的几个命令实践
  18. 一建有什么刷题软件,怎么备考?
  19. 添加pdfFactory Pro虚拟打印机的文本超链接
  20. python 对7位数彩票的获奖判断

热门文章

  1. python桌面快捷图标_Python创建、删除桌面、启动组快捷方式的例子分享
  2. python 生成html文件浏览器_Handout库:能将python脚本转化为html展示文件
  3. angular 权限 php,PHP,Angular,HTACCESS-仅允许来自源域的请求
  4. 转usb驱动cmw500 ni_支持USB Type-C接口的外置蓝光驱动器IO Data BRP-UT6 / MC2本月发售...
  5. 搞不懂,为啥现在什么公司都在考算法???
  6. 26岁!年入100万,两周把 Github 项目推向全球榜首,他是怎么做的?
  7. 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结
  8. 阿里P8架构师谈:Quartz调度框架详解、运用场景、与集群部署实践
  9. 白硕 | 基于区块链的众包社区激励机制
  10. 论文阅读课2-Inter-sentence Relation Extraction with Document-level (GCNN,句间关系抽取,ACL2019