mediafire scrapper获取download_link

时间:2015-07-02 14:45:56

标签: python web web-crawler

我制作了一个基本上是网络爬虫的python脚本。 我的目标是从某个blogspot获取文件的直接下载链接,然后找出直接下载链接。

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

1 个答案:

答案 0 :(得分:0)

如果他们透露了他们的直接下载链接,他们就没有任何业务。

他们通过JavaScript隐藏它,这样他们的直接链接就不会通过普通的报废方法显示出来。用无头方法尝试硒。

以下是您可以阅读的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()