更多教程請移步至:洛涼博客
求助請移步至:Python自學技術交流
大家可以登錄下www.80s.tw網站,觀察頁面菜單。
最開始我是想把菜單下所有頁面的都爬一遍。想想還是有點復雜。
image.png
但是最開始通過匹配,這些菜單的鏈接都拿到了。
單線程去寫這些肯定和復雜,就放棄了。最后就攻下了電影菜單下的。
最開始也是用正則匹配迅雷(磁力)鏈接,但是匹配的有點問題。
最后直接用BS4解決了。
下面大家看代碼吧。
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
def url_1(page_o,page_t):
url_s = []
for page in range(page_o,page_t):
url = 'http://www.80s.tw/movie/list/-----p'+str(page)
url_s.append(url)
return url_s
def html(url_s):
mv_urls = []
for url in url_s:
html = requests.get(url,headers=headers)
soup = BeautifulSoup(html.text,'lxml')
for mv in soup.find_all('h3',{'class','h3'}):
mv_url = mv('a')[0]['href']
mv_urls.append('http://www.80s.tw'+mv_url)
return mv_urls
def thlj(mv_urls):
num = 0
print('{0:^1}\t{1:^30}\t{2:^60}'.format('排序','電影名稱', '迅雷鏈接或磁力鏈接'))
for thurl in mv_urls:
html = requests.get(thurl,headers=headers)
soup_t = BeautifulSoup(html.text,'lxml')
for xlurl in soup_t.find_all('span',{'class',"xunlei dlbutton1"}):
num+=1
xl_lj = xlurl('a')[0]['href']
xl_name = xlurl('a')[0]['thunderrestitle']
print('{0:^1}\t{1:^30}\t{2:^60}'.format(num,xl_name,xl_lj))
page_o = int(input('請輸入需要爬取的開始頁:'))
page_t = int(input('請輸入需要爬取的結束頁:'))
thlj(html(url_1(page_o,page_t)))
這些迅雷鏈接直接復制用迅雷就能下載了。還有一種磁力鏈接,我沒用過,不知道怎么用。大家可以百度或谷歌下。
image.png
這些代碼都是挺簡單的,我也是個菜鳥,只是給自己的成果做個記錄。
也沒有太多的技術分享,還望大家見諒!!!