用于输入关键字的爬虫方法(运行环境python3)

优采云 发布时间: 2020-08-08 20:17

  前一段时间,我写了一个履带. 在新浪的主要搜索页面中,我输入了关键字,并爬行了标题,发布时间,URL,关键字以及与该关键字相关的新闻内容. 然后根据内容提取摘要并计算相似度. 下面解释了我自己的想法,并给出了代码的githup链接:

  1. 获取关键字新闻页面的网址

  在新浪上搜索主页,输入关键字,单击搜索,它将自动链接到关键字新闻界面. 有两种获取此页面URL的方法. 本文提供了三种方法.

  1)静态抓取

  从新浪搜索主页,输入关键字,进入与kerwords相关的新闻页面,手动获取URL链接,然后用您需要输入的关键字替换URL中的关键字,获取新的URL,发送新的URL请求,获取页面的源代码. 缺点: 对于动态网页,URL是通过这种方式获得的,发送请求所获得的网页的源代码与在搜索界面中手动输入关键字所获得的页面的源代码不一致.

  2)动态抓取

  模仿浏览器的行为,并获取与关键字新闻相关的页面. 有两种方法,一种是确定使用的浏览器,使用该程序来调用浏览器,以及操作输入和搜索过程;另一种是使用浏览器来模拟没有界面的浏览器的行为. 关键字页面的URL和源代码. 如图所示,进入搜索首页并输入关键词,将跳转到搜索结果页面.

  

  2. 分析关键字新闻页面上的信息

  1)查找搜索到的新闻文章数量,并根据页面上的新闻数量计算与该关键字相关的新闻页面数. 找出不同页面的网址之间的链接,并生成用于翻页的网址.

  

  如上图所示,“发现7,651条相关新闻”出现在新闻界面中. 使用常规匹配等方法获得“ 7,651”,并根据新浪新闻搜索页面一页上显示的新闻数m计算相关新闻. 页面数: int(7651 / m).

  2)在页面上找到新闻的网址.

  

  检查页面的源代码,并找到与新闻对应的URL. 如上所示,当出现新闻URL时,相同的规则是“”,因此您可以根据此规则提取页面源代码中的所有URL.

  3. 从新闻页面中提取信息

  根据新闻的URL,进入新闻页面,找到标题,发布时间,关键字,内容,描述内容并将其提取. 要注意的一件事是解码问题. 网页的源代码具有不同的编码格式,因此请注意解码.

  1)新闻中没有关键字,并且生成了关键字. 根据新闻内容,计算内容中单词的出现频率,并用单词出现频率确定输出的单词作为关键词;

  2)新闻中的抽象生成采用提取方法,并借用了石木博客的代码(链接如下: ).

  3)关键字和新闻之间的相似性. 根据新闻标题,关键词和内容,分配不同的权重以计算相似度. 具体思路如下:

  a)关键字和标题

  关键词和标题都收录与输入词有关的词,权重为kT_W = 0.8;仅标题收录输入词,相关词的权重为kT_W = 0.7;只有关键字收录与输入有关的单词. 对于单词,权重kT_W = 0.6;其他权重kT_W = 0.6.

  b)新闻内容中: 新闻内容中与自然语言有关的单词的频率content_P

  

  c)相似性的最终计算公式为:

  

  4. 代码(运行环境python)

  代码链接:

  在安装了相关模块之后,将附加需要下载的文件和代码中所需的文件. 并给出了相应的python2和python3代码

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线