lifeixue 发表于 2021-4-30 18:07

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源码:

shqvc 发表于 2021-5-27 10:27

你很不错了我也想学不知道怎么入门英文没有及格过看到这一串串的字母   头疼   你真的已经很不错了   加油

酸奶0990 发表于 2021-4-30 18:16

支持下楼主!

hqt 发表于 2021-4-30 18:20

牛逼
不能运行的小伙伴 现在cmd里输入 pip install bs4
可解决

哈利菜菜 发表于 2021-4-30 18:27

佩服佩服,,这么快就能爬网站了

xiaohuihui2 发表于 2021-4-30 18:34

寒一七 发表于 2021-4-30 18:48

我看了快一个月了,还没你这水平

dzzqz2012 发表于 2021-4-30 18:54

向楼主学习

icy200456 发表于 2021-4-30 18:56

一个星期就可以爬网站好强额

筱木头 发表于 2021-4-30 18:56

寒一七 发表于 2021-4-30 18:48
我看了快一个月了,还没你这水平

我看了二个月了,也不行

Anyling 发表于 2021-4-30 19:09

这么强悍,确定是小白?
页: [1] 2 3
查看完整版本: Python入坑的第一周,爬取豆瓣电影Top250