我已经做了一个python脚本,基本上就是网络爬虫。我的目标是从一些博客上获取文件的直接下载链接,然后找出直接下载链接。
def trade_spider(max_pages):
page=1
i=1
while page < max_pages:
url='http://comicsmegacity.blogspot.in/'
source_code=requests.get(url)
plain_text=source_code.text
soup=BeautifulSoup(plain_text)
for link in soup.findAll('a' , href=re.compile('http://www\.mediafire\.com/')):
href=link.get('href')
print('link no ' + str(i) +' title ' + link.string)
i+=1
print(href)
get_download_link(href)
page+=1
def get_download_link(url):
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text)
for link in soup.findAll('div', {"class": "download_link"}):
href = link.get('href')
print('Download link ')
print(href)
trade_spider(2)但是输出结果是:
link no 1 title Prem Ritu
http://www.mediafire.com/download/1vkgv8i0a151vqm/Prem+Ritu-1.pdf
Download link
None
Download link
None
link no 2 title Kobi Prem
http://www.mediafire.com/download/b46y4fe61cgyfts/kobi+prem-2.pdf
Download link
None
Download link
None发布于 2015-07-02 22:58:47
如果他们透露了他们的直接下载链接,他们就不会有任何业务。
它们通过JavaScript将其隐藏起来,这样它们的直接链接就不会通过普通的抓取方法显示出来。尝试使用selenium with headless方法。
这是一个你可以阅读的article,它将呈现javascript。
以下是实际工作的代码:
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.set_window_size(1120, 550)
driver.get("http://www.mediafire.com/download/1vkgv8i0a151vqm/Prem+Ritu-1.pdf")
div = driver.find_element_by_class_name('download_link')
print div.find_element_by_css_selector('a').get_attribute('href')
driver.quit()https://stackoverflow.com/questions/31187728
复制相似问题