目前正在学习使用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))