• Python简单网络爬虫实战—下载论文名称,作者信息(上)


    上学期小师妹的小导师要她收集2009年到现在所有年份的某个方向的全部论文的名称、作者

    小师妹看着dblp上茫茫多的论文,心生绝望,弄了一下午+一个晚上才弄好了09和10两年的

    于是我自告奋勇,用python给她写个脚本,虽然之前没有经验,但是也算是一种新的尝试

    首先,最方便查找论文的地方当然是dblp,该网页长这样:

    作者名称和论文名称都有,就很方便。

    1.python请求网页

    那么接下来首先要用python get到整个网页。

    这个小工具需要用到两个模块:

    import requests
    from bs4 import BeautifulSoup

    一个是requests,用于发起网页请求。

    向网址为address(address必须完整,https://www.baidu.com)的html发起请求,返回的html赋给res,res编码格式为‘utf-8’:

    res = requests.get(address)
    res.encoding = 'utf-8'

    另一个是BeautifilSoup模块

    这个模块用来存储读取的网页(这里还要安装lxml模块):

    soup = BeautifulSoup(res.text, 'lxml')

    这样,soup中就存储了整个网页的全部信息,接下来所要提取的信息都从soup中来。

     那么怎么从soup中提取所需信息呢?这就需要查看源网页的结构了

    2.谷歌浏览器查看网页结构

    打开谷歌浏览器,打开目标网页(26th NDSS 2019: San Diego, CA, USA),F12:

    在Elements中显示了该html的所有结构

    基本上一个网页结构如下:

    <html lang="en">
    <head>...</head>
    <body class="****" style="*****">...</body>
    </html> == $0

    用鼠标移动到代码行,左边的网页就会显示相应的部分。这让我们可以迅速找到所需对象的位置。

    可以看到,作者名称是.publ-list类下的.entry.editor类下的.data类下的author

    论文name是.publ-list类下的.entry.inproceedings类下的.data下的title

    一个.data型代表一篇论文,可能没有author,也有可能有多个author,但title只有一个。

  • 相关阅读:
    Matching「CEOI2011」
    中位数之中位数「NOIP多校联考 2019」
    积木「CSP-S全国排位赛第一场」
    序列「CSP-S全国排位赛第一场」
    GT考试「HNOI2008」
    动物园「NOI2014」
    Radio Transmission「BOI2009」
    小Z的袜子「国家集训队」
    BZOJ3624: [Apio2008]免费道路
    BZOJ1190: [HNOI2007]梦幻岛宝珠
  • 原文地址:https://www.cnblogs.com/masonmei/p/11536993.html
Copyright © 2020-2023  润新知