根据文章标题关键字爬取顶会CVPR文章并下载文章

我使用的是Python3.5,因为能力有限只能根据一个关键词查找。
如果有大神知道怎么可以根据多个关键词同时出现在标题中精确查找,请告知谢谢。或者其他改进地方的,希望大家一起讨论学习。

# -*- coding: utf-8 -*-

import os
import re
import urllib
import urllib.request
import requests


#get web context
def get_context(url):
    """
    params:
        url: link
    return:
        web_context
    """
    web_context = requests.get(url)
    return web_context.text


url = r'https://openaccess.thecvf.com/CVPR2020?day=2020-06-16'
'''
试过用https://openaccess.thecvf.com/CVPR2020 但是爬出的数据并找不到文章,所以只能精确找到月份。
'''
web_context = get_context(url)
#find paper files

'''
(?<=href=\"): 寻找开头,匹配此句之后的内容
.+: 匹配多个字符(除了换行符)
?pdf: 匹配零次或一次pdf
(?=\">pdf): 以">pdf" 结尾
|: 或
'''
#link pattern: href="***_CVPR_2016_paper.pdf">pdf
link_list = re.findall(r"(?<=href=\").+?pdf(?=\">pdf)|(?<=href=\').+?pdf(?=\">pdf)",web_context)
#name pattern: <a href="***_CVPR_2016_paper.html">***</a>
name_list = re.findall(r"(?<=2020_paper.html\">).+(?=</a>)",web_context)
name_list1=name_list
'''
根据自己需要的关键字修改keyword里面的内容
'''
keyword=['Autonomous','Driving']

#找出文章标题中单词与keyword中的低单词相同文章在name_list 的位置
n=-1
cnt=[]
for name in name_list1:
    name1=name.split(sep=' ')
    n+=1
    for word in name1:
        if word in keyword:
            cnt.append(n)

#download
#create local filefolder
local_dir = 'E:\\CVPR19\\'
if not os.path.exists(local_dir):
    os.makedirs(local_dir)
##############################
cnt1 = 0
while cnt1 < len(cnt):
    file_name = name_list[cnt[cnt1]]
    download_url = link_list[cnt[cnt1]]
    #为了可以保存为文件名,将标点符号和空格替换为'_'
    file_name = re.sub('[:\?/]+',"_",file_name).replace(' ','_')
    file_path = local_dir + file_name + '.pdf'
    #download
    print ('['+str(cnt1)+'/'+str(len(cnt))+'] Downloading' + file_path)
    try:
        urllib.request.urlretrieve("http://openaccess.thecvf.com/" + download_url, file_path)
        print('正在下载!')
    except:
        print ('download Fail: ' + file_path)
    cnt1 += 1
print('Finished')

结果大致下面:我查的是关键词 keyword=[‘Autonomous’,‘Driving’]
在这里插入图片描述

参考:https://blog.csdn.net/a529975125/article/details/79479438?biz_id=102&utm_term=%E7%88%AC%E5%8F%96CVPR%E6%96%87%E7%AB%A0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-79479438&spm=1018.2118.3001.4187

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值