selenium爬取文献

故事的起因:师姐想让我帮她下载25篇文献,给了一串URL,需要手动的去下载,需要一直点点点。 咱就说有点浪费时间。

突然发现有一个模块:selenium可以代替人工点点点。
嗯…真不错

#需要下载selenium
#如果下载过就自动忽略这一步
#pip install selenium
import requests
import re
import urllib.request
from selenium import webdriver
#url所在的位置
url_file="E:/url.txt"
#保持与本机相连,保持与服务器的会话连接
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36',
}
with open(url_file,"r") as f:
    for url in f:
        driver = webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver")
    #     ret = Request(url, headers=headers)
    #     html = urlopen(ret)
    #     bs = BeautifulSoup(html, "html.parser")
    #     div = bs.find("h1", {"class": "item-meta-data__item-title"})
        #title=div.get_text()
        driver.get(url) #请求网页
        element=driver.find_element_by_css_selector(".download-pdf")
        element.click()
        window = driver.window_handles
        driver.switch_to.window(window[-1])
        pdf_url=driver.current_url
        r = requests.get(pdf_url,headers=headers) 
        print(url,r)
        if "\n" in url:
            url=url.replace("\n","")
        file="E:/{}.pdf".format(url.split("/")[-2]+"-"+url.split("/")[-1])
        with open(file, "wb") as code:
            code.write(r.content)

其中最主要的一步是: driver.find_element_by_css_selector(".download-pdf")
我的点点点需要点在一个图片上:下图的红色PDF下载按钮
在这里插入图片描述
所以找到这个下载按钮的class是啥就可以了,在检查里面找,我的是download-pdf

就可以自动下载然后去干别的事情了。
就是速度有点慢…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值