虚拟邮箱注册网站,新开神途手游发布网站,前端需要学什么,怎样建设网站教程前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。PS#xff1a;如有需要Python学习资料的小伙伴可以加点击下方链接自行获取基本开发环境Python 3.6Pycharmimport parselimport requestsimport re目标网页分析今天就爬…前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。PS如有需要Python学习资料的小伙伴可以加点击下方链接自行获取基本开发环境Python 3.6Pycharmimport parselimport requestsimport 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(urlhtml_url, headersheaders)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 .txtwith open(path, modea, encodingutf-8) as f:f.write(content)print(正在保存, title)主函数def main(url):主函数:param url: 新闻列表页 url地址:return:html_data get_html(url).text # 获得接口数据response.textlis get_page_url(html_data) # 获得新闻url地址列表for li in lis:page_data get_html(li).content.decode(utf-8, ignore) # 新闻详情页 response.textselector 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{}pagenum9t5_58.format(page)main(url_1)运行效果图