我制作了一个基本上是网络爬虫的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
答案 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()