python爬虫之爬取多篇含有关键词的文章标题和内容
python爬虫之爬取多篇含有关键词的文章标题和内容
- 实现的功能
- 需要用到的库
- 需要对html一些标签有一定的了解
- 代码设计思想
- 源代码
- 功能优化
- Java版本
实现的功能
输入想要搜索的关键字和输入关键字后的前几页页数(即输入关键字后跳转的网页的页数,如下图)
将包含关键字的文章标题和内容提取出来保存在一个txt文件里面(如下图,输入关键词为高新,前一页)
需要用到的库
获取文章信息需要的库:beautifulsoup4,request;
需要对html一些标签有一定的了解
可以到w3cschool了解
打开维科闻网站输入关键词后,按F12开发者工具,或者右键点击查看源,就可以看到网页的源代码。
代码设计思想
1.每个网页通过request请求获得网页源代码,再通过bs4(beautifulsoup)来对源代码进行提取信息;
2.先观察每次输入关键字之后网址的变化,如我输入高新,可以发现关键字在keywords=里面,那这样可以用input后,将关键字字符串和前面的网址连接起来。
3.观察每一页的网址变化,如第三页,可以发现页数是存在pagenum=里面的(第一页可能忽略了,你可以尝试的输入http://www.ofweek.com/newquery.action?keywords=高新&pagenum=1,发现会跳转第一页),这样就可以将页数和前面2拼接后的网址再拼接起来。
4.接下来就是看搜索关键词后网页的源代码(F12),可以发现每个文章都是在类名为zx-tl的div块标签里面,就可以通过select提取出里面的文章的标题和链接。
5.再将每页文章的链接访问一遍,提取出文章的内容,而再次打开每篇文章的链接,发现文章的内容都是在类名为artical-content的div块里面,通过select把文章的内容提取出来。
6.把文章的内容和标题写入txt文件。
源代码
import re
import requests
from bs4 import BeautifulSoup
titles=[]#存放标题
urls=[]#存放链接
keyword=input("输入想要在维科网搜索的关键字:")#输入关键字
pagenum=input("输入想要查找的前几页(如果输入2,即找前2页的):")#前几页
txt_name="关键词:"+keyword+"前"+pagenum+"页具体内容.txt"#这是文件名的生成
with open(txt_name,'w',encoding='utf-8') as f:#创建文件f.write(txt_name+'\r')#写入文件名f.close()
for i in range(1,int(pagenum)+1):#遍历关键词的页数html="http://www.ofweek.com/newquery.action?keywords="+keyword+"&type=1&pagenum="+str(i)#根据关键词和页数生成对应的链接resp=requests.get(html)#建立链接resp.encoding='utf-8'#读取中文时不会出现乱码content=resp.textbs=BeautifulSoup(content,'html.parser')for news in bs.select('div.zx-tl'):#每个标题都是存在类名为no-pic的li标签里面(可以去看维科网搜索关键词后的网页源代码去发现标题的存在标签。基本上都是存在相同的标签里面。)url=news.select('a')[0]['href']#提取文章出链接urls.append(url)title=news.select('a')[0].text#提取文章标题titles.append(title)
for i in range(len(urls)):#遍历每篇文章的链接resp=requests.get(urls[i])resp.encoding='utf-8'content=resp.textbs=BeautifulSoup(content,'html.parser')page_content=bs.select('div.artical-content')[0].text#可以发现文章的内容是存在类名为artical-content的div块里面with open(txt_name,'a',encoding='utf-8') as f:#写入刚刚建立的txt文件f.write("\n"+titles[i]+page_content)f.close()
print("txt文件已经成功记录!")
功能优化
python爬虫之爬取多篇含有关键词的文章标题和内容优化
Java版本
我后面也用java写了和这个类似的爬虫,大家需要可以看一看!
Java爬虫之爬取多篇含有关键词的文章标题和内容优化
python爬虫之爬取多篇含有关键词的文章标题和内容相关推荐
- python爬虫之爬取简书中的小文章标题
学习了三个星期的python基础语法,对python语法有了一个基本的了解,然后想继续深入学习,但不喜欢每天啃书本,太无聊了,只有实战才是练兵的最好效果.听说爬虫技术还是比较好玩的,就搞爬虫,但找了好 ...
- python爬虫实战-爬取微信公众号所有历史文章 - (00) 概述
http://efonfighting.imwork.net 欢迎关注微信公众号"一番码客"获取免费下载服务与源码,并及时接收最新文章推送. 最近几年随着人工智能和大数据的兴起,p ...
- python可以爬取的内容有什么_Python爬取视频(其实是一篇福利)过程解析 Python爬虫可以爬取什么...
如何用python爬取视频网站的数据 如何用python爬取js渲染加载的视频文件不是每个人都有资格说喜欢,也不是每个人都能选择伴你一生! 有哪位大神指导下,有些视频网站上的视频文件是通过 js 加载 ...
- python爬取网页表格数据匹配,python爬虫——数据爬取和具体解析
标签:pattern div mat txt 保存 关于 json result with open 关于正则表达式的更多用法,可参考链接:https://blog.c ...
- python爬虫能爬取微信密码吗_爬虫如何爬取微信公众号文章
下篇文章:python爬虫如何爬取微信公众号文章(二) 下下篇连接python爬虫如何实现每天爬取微信公众号的推送文章 因为最近在法院实习,需要一些公众号的数据,然后做成网页展示出来便于查看,之前我倒 ...
- python爬虫爬取音乐_利用python爬虫实现爬取网易云音乐热歌榜
利用python爬虫实现爬取网易云音乐热歌榜 发布时间:2020-11-09 16:12:28 来源:亿速云 阅读:102 作者:Leah 本篇文章给大家分享的是有关利用python爬虫实现爬取网易云 ...
- python爬虫之爬取起点中文网小说
python爬虫之爬取起点中文网小说 hello大家好,这篇文章带大家来制作一个python爬虫爬取阅文集团旗下产品起点中文网的程序,这篇文章的灵感来源于本人制作的一个项目:电脑助手 启帆助手 ⬆是项 ...
- 【python爬虫】爬取Bing词典的单词存到SQLite数据库(加了pyqt5界面显示)
之前一篇博客的连接: [python爬虫]爬取Bing词典的单词存到SQLite数据库 相比之前这篇文章中的源码,这次带UI的代码不仅改进了UI界面,爬虫部分的代码也有改进. 展示 代码github ...
- Python爬虫之爬取淘女郎照片示例详解
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.op-kg.com/ ...
最新文章
- jenkins设置使用参数构建项目
- 《Spring技术内幕》——1.4节Spring的应用场景
- 基于Bresenham和DDA算法画线段
- vs2005中的aspnetdb(转)
- React学习笔记六 React拓展 - SetState
- Alink、Tensorflow on Flink 在京东的应用
- IOS OpenGL ES GPUImage 图像 XYDerivative 边缘检测 GPUImageXYDerivativeFilter
- python科学计算的例子_Python科学计算:NumPy
- Android Apk编译的apk安装失败解决
- STM32F103RCT6Mini开发板搭建1.44寸TFT显示屏
- 大家身边有没有超级自恋的人
- 关于对齐次裁剪空间及HLSL语义的理解
- PHP文件怎么改tne,修改 · thinkphp6文档 · 看云
- python 实现自动化点击界面方案
- 嵌入式设备系统有无操作系统的区别
- 用Jquey实现双击图片放大和触摸放大的功能。
- 公开密钥密码体制(C语言实现RSA加密算法)
- 脚本引擎《游戏脚本的设计与开发》-序
- Android App 线上热修复方案
- 顺丰和菜鸟互撕 专家:核心是大数据