Python入坑的第一周,爬取豆瓣电影Top250
print("人生苦短,我用Python")应了这句话,于是我下定决心自学Python,开启了入坑之旅一开始没有方向,没有高人的指点,于是我开始加群、买书、度娘、求教程.......才发现前路坎坷,并没有想象中的那么容易{:1_889:}
经过一周的不断学习,弯路虽然走了不少,但好歹也有了一些成果,写出了第一个能正常运行的程序(爬取豆瓣电影Top250)
对于我这样的小白来说,如何高效开心的入坑到最后,还望各位不吝赐教{:1_893:}
话不多说,分享一下成果,(代码很烂,心里很清楚;www)
# 需要添加的模块
from bs4 import BeautifulSoup
import re
import urllib.request
def main():
baseurl = "https://movie.douban.com/top250?start="# 爬取豆瓣
top250 = getData(baseurl)
saveData(top250)
movie_Name = re.compile(r'<span class="title">(.*?)</span>')# 电影名称
movie_Link = re.compile(r'<a href="(.*?)">')# 电影链接
movie_Img = re.compile(r'<img.*src="(.*?)"', re.S)# 图片链接
movie_Rating = re.compile(r'<span class="rating_num" property="v:average">(.*?)</span>')# 评分
movie_Judge = re.compile(r'<span>(\d*)人评价</span>')# 评价人数
movie_survey = re.compile(r'<span class="inq">(.*?)</span>')# 电影概况
movie_info = re.compile(r'<p class="">(.*?)</p>', re.S)# 相关信息
# 1.爬取网页
def add(baseurl):
head = {
"User-Agent": "Mozilla/5.0(Windows NT 10.0;Win64;x64) AppleWebKit/537.36(KHTML, likeGecko) Chrome/71.0.3578.98 Safari/537.36"
}# 模拟浏览器
request = urllib.request.Request(url=baseurl, headers=head)
response = urllib.request.urlopen(request)
html = response.read().decode("utf-8")
return html
# 2.获取数据
def getData(baseurl):
datalist = []
for i in range(0, 10):
url = baseurl + str(i * 25)
gain = add(url)
soup = BeautifulSoup(gain, "html.parser")
for item in soup.find_all("div", class_="item"):# 截取网页
item = str(item)
name = re.findall(movie_Name, item)# 电影名,使用正则来匹配内容(逐一解析)
link = re.findall(movie_Link, item)# 电影链接
img = re.findall(movie_Img, item)# 图片链接
rating = re.findall(movie_Rating, item)# 评分
judge_num = re.findall(movie_Judge, item)# 评价数量
survey = re.findall(movie_survey, item)# 概况
if len(survey) != 0:
survey = survey.replace("。", "")# 去掉句号
else:
survey = ""# 留空
info = re.findall(movie_info, item)# 相关信息
info = re.sub("/", " ", info)# 替换/
info = re.sub(r" + |\xa0|\n|<br >", "", info)# 去掉其他
data = # 保存数据
datalist.append(data)# 追加到列表
return datalist
# 3. 保存数据
def saveData(top250):
f = open("豆瓣Top250.txt", "w", encoding='utf-8')
for i in range(0, 249):
print("已存储第%d条影片信息" % (i+1))
data = top250
movie = str(data)
f.write(movie + "\n")# 写入内容
f.close()
if __name__ == '__main__':
main()
print("人生苦短,我用Python")
# 爬取豆瓣电影Top250
# 存储方式:保存到txt文本
# 使用了3个模块from bs4 import BeautifulSoupimport reimport urllib.request源码: 你很不错了我也想学不知道怎么入门英文没有及格过看到这一串串的字母 头疼 你真的已经很不错了 加油 支持下楼主! 牛逼
不能运行的小伙伴 现在cmd里输入 pip install bs4
可解决 佩服佩服,,这么快就能爬网站了 我看了快一个月了,还没你这水平 向楼主学习 一个星期就可以爬网站好强额 寒一七 发表于 2021-4-30 18:48
我看了快一个月了,还没你这水平
我看了二个月了,也不行 这么强悍,确定是小白?