使用python,爬取猫眼电影榜单top100
要使用 Python 爬取猫眼电影榜单 top 100,可以使用 requests 和 BeautifulSoup 这两个库。
代码可能会随着猫眼电影网站的更新而失效,因为网站的结构可能会改变。如果遇到这种情况,你可能需要调整代码以适应新的网站结构。此外,过度的网络请求可能会被视为恶意行为,所以请确保你的行为符合网站的使用条款。
在对网页进行抓取和解析时,一定要遵守相关法律法规以及网站的Robots协议,不要对网站造成过大的访问压力。
```# 爬取猫眼电影榜单top100
#地址:http://maoyan.com/board/4
import requests
from bs4 import BeautifulSoup
import re
titles = [] # 电影名字
stars = [] # 主演
times = [] # 上映时间
scores = [] # 评分
def getList():
for page in range(0,100,10):
url = "http://maoyan.com/board/4"+"?offset="+str(page)
headers= {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
}
rsp = requests.get(url,headers=headers)
html = rsp.text
soup = BeautifulSoup(html,'lxml')
dd = soup.find_all('dd')
for i in dd:
movie_title = i.find(class_='name').get_text()
#print(title.get_text())
titles.append(movie_title)
movie_star = i.find(class_='star').get_text()
movie_star=re.findall('主演:(.*)',movie_star)
stars.append(movie_star)
movie_time = i.find(class_='releasetime').get_text()
movie_time=re.findall('上映时间:(.*)',movie_time)
times.append(movie_time)
movie_score_interger = i.find(class_='integer').get_text()
movie_score_num = i.find(class_='fraction').get_text()
movie_score=movie_score_interger+movie_score_num
scores.append(movie_score)
def write_txt():
file = open('maoyan.txt',"w")
for i in range(100):
one_write = str(titles[i])+"--- "+str(times[i])+"--- "+str(scores[i])+"--- "+str(stars[i])+"\n"
file.write(one_write)
file.close()
if __name__ == '__main__':
getList()
write_txt()
Python 是一种非常适合网络爬虫编程的语言,原因主要有以下几点:
- 易学易用:Python 的语法简洁清晰,易于理解,非常适合初学者入门。
- 大量支持库:Python 有众多的支持库,包括但不限于 requests,BeautifulSoup,Scrapy,Selenium 等,这些库使得在 Python 中进行网络爬虫变得非常简单。
- 跨平台性:Python 可用于各种操作系统,包括 Windows,Linux 和 MacOS 等。
- 丰富的数据处理功能:Python 的数据处理能力非常强大,包括 Pandas,Numpy,Matplotlib,Seaborn 等库,可以方便地处理和分析爬取的数据。