2016年的时候的代码,当时按老板需求批量下载了某会议proceeding全部文章。好庆幸当时没有被当作滥用资源,封禁权限...
不过现在ACM改版了,这个应该不适用了。
仅保存一下,做个记录。
- 在proceeding主页下找到所有文章链接
- 遍历每个链接,下载pdf
from selenium import webdriver
import time
import urllib
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
driver.get("http://dl.acm.org/citation.cfm?id=2207676")
elem = driver.find_element_by_id("ext-gen67")
#elem.send_keys(Keys.RETURN)
print elem
elem.click()
i= 0
elementllist = driver.find_elements_by_name("FullTextPDF")
pdfurllist = []
for element in elementllist:
pdfurllist.append(element.get_attribute('href'))
i = i+1
import os
os.mkdir("chi2012")
i = 0
for url in pdfurllist:
if url != None :
i = i+1
print i
driver.get(url)
pdf = driver.current_url
shorturl = pdf[0:pdf.index(".pdf")]
pdfname = shorturl[shorturl.rindex("/")+1:]
print pdfname
data = urllib.urlopen(pdf).read()
f = open("pdf\\"+pdfname+".pdf", 'wb')
f.write(data)
f.close()
driver.close()