HowNet采集器-在特定主题下搜寻文章的标题和出版时间

优采云 发布时间: 2020-08-09 01:59

  几天前,我帮助一个朋友制作了一个HowNet采集器,以“新闻传播”为主题搜寻了文章的标题和出版时间. 我拖延了2天才写完,但还是太虚弱了. 我个人认为这是一个动手实践的好爬虫项目,因此我编写了主要步骤并将代码放在github上. 有需要的朋友可以查看一下,或向我指出改进之处. github链接到我的github -Zhiwang爬虫.

  1. 采集器HowNet的采集器必须首先找到合适的HowNet采集器条目. 建议从此链接输入HowNet条目;

  2. 输入要爬网的主题,搜索并观察URL的变化. 此时,URL没有长后缀,继续往下看;

  

  3. 接下来,我们将翻页并查看URL中的更改. 我们发现每页只有15个文章标题,并且异步加载了15条信息,因此我们构造了pagenext()函数来翻页;

  

  4. 打开开发人员工具,找到文章标题文本的标签,观察标签中的文本,然后将其分开,因此,您只能通过BeautifulSoup Select和查找两个标题所在的上部标签或上部标签. get_text()提取文本,我在这里选择了h3标签;

  

  5. 然后我们需要选择每篇文章的发布日期,这需要我们单击进入每篇文章以选择日期,通过BS选择字体标签,找到color =“#0080ff”的标签,并提取Text,即出版时间可以确定;

  

  6. 但是,在爬网过程中,我们发现每篇文章的URL是不同的,甚至有一些URL进入了,根本没有文章,因此我观察了url的组成,发现有三种类型的URL,只有两种URL的类型. 它可以使用,因此我使用正则表达式来匹配可以使用的标签,然后请求提取文章的发布时间;

  

if re.match(r"""http://youxian.cnki.com.cn/yxdetail.aspx\?filename=[0-9a-zA-Z]+&dbname=[a-zA-Z]+""",text_url) or re.match(r'http://www.cnki.com.cn/Article/[a-zA-Z]+-[0-9a-zA-Z-]+.htm',text_url):

# print(text.find('a')['href'])

text_date = datespider(text_url)

  7. 保留捕获的数据,然后将其写入excel以完成对HowNet的爬网;

  粘贴以下源代码:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线