作者lhsilyvm (此一時也彼一時)
看板Python
標題[問題] 電影排行爬蟲
時間Tue May 10 23:47:40 2022
目前正在學習使用requests模組爬蟲,
以奇摩電影的排行榜當作練習,
網址如下:
https://movies.yahoo.com.tw/chart.html?cate=year
網頁右邊有一側邊欄台北票房、全美票房、預告片的排行榜,
擷取網頁內排行資訊的部分語法如下:
<div class="num">2</div>
<span>媽的多重宇宙</span>
</li>
不管是哪種排行榜都是這種結構,
但是以下列的函數去操作時,
都只找到台北票房的部分,
跑完十個項目就結束了,
想請教有沒有漏掉什麼地方,
謝謝
以下是爬蟲的函數:
def get_webpage(self, url):
html = requests.get(url=url,headers=self.headers).content.decode('utf-8')
# 利用正規表示法搜尋
pattern = '<div class="num">(.*?)</div>.*?<span>(.*?)</span>.*?</li>'
regex = re.compile(pattern, re.S)
movie_list = regex.findall(html)
self.save_webpage(movie_list)
def save_webpage(self, movie_list):
movie_dict = {}
for movie in movie_list:
movie_dict['rank'] = movie[0].strip()
movie_dict['name'] = movie[1].strip()
print(movie_dict)
time.sleep(random.uniform(0, 2))
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.252.234 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1652197662.A.D70.html
→ TakiDog: 用正則太累了吧 05/11 00:05
→ TakiDog: 預告片/全美 都是點擊才動態載入,你要爬的url不對 05/11 00:09
→ alansyue: 解析 HTML 用 BeautifulSoup 比較方便 05/16 11:34