楼主: yusb
87 0

[经管数据集] 豆瓣Top250爬虫,jupyter Notebook 相关演示程序源代码+说明 [推广有奖]

巨擘

0%

还不是VIP/贵宾

-

威望
0
论坛币
19740 个
通用积分
1794.8048
学术水平
13 点
热心指数
25 点
信用等级
3 点
经验
56239 点
帖子
13703
精华
0
在线时间
8919 小时
注册时间
2020-12-8
最后登录
2024-5-3

楼主
yusb 在职认证  发表于 2023-12-14 14:49:21 |只看作者 |坛友微信交流群|倒序 |AI写论文
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

豆瓣Top250爬虫,jupyter Notebook 相关演示程序源代码+说明



豆瓣Top250爬虫,jupyter Notebook 相关演示程序源代码Douban_DataAnalyze.zip (3.4 MB, 需要: RMB 19 元) 本附件包括:

  • top250.xlsx
  • Top250chart.html
  • Top250chart.ipynb
  • Top250charts.py
  • Top250details.py
  • top250details.py - python_project - Visual Studio.mp4
  • Top250summary.py
  • 电影.txt
  • 豆瓣Top250爬虫与数据分析.md
  • 豆瓣Top250爬虫与数据分析.pdf



7cf7e23d3eff74a868822cd02e01628.png



### 项目涉及内容

-  获取豆瓣Top250电影的基本信息,并导入到表格

- 根据的到的基本信息表格用matplotlib,绘制图表,分析其各字段的相关性

- 获取所有电影的内容简介,并导入到txt文件中

  

###二、代码详解

### (一)Top250电影信息

####    涉及文件

- **Top250details.py**

- **top250.xlsx**

####    要点/步骤

- 爬虫的时候会出现禁止访问的情况,首先需要定义headers 并在requests中传参

  > requests.get(url=MainPage,headers=headers)

  是在没办法是可以通过重启路由器 或重启手机换自己的网络ip

- Top250网址有10页,需要对网址进行翻页操作

  主要通过对网址的结构观察得到start=后的数字不同,每一页都是累加25 对该数字累加实现跳转

  > MainPage ="https://movie.douban.com/top250?start=" + str(x) + '&filter='

- 每部电影的信息采集需要匹配个字段需要存在各变量中,通过find查找

  ```python

  Soup = BeautifulSoup(strMainpage,'lxml')

  # 在获取解析好BeautifulSoup类Soup中寻找class='grid_view'的'ol'标签 25条记录的details都写在该标签下

  ol_tag = Soup.find('ol',class_='grid_view')

  # 在找到的'ol'标签中寻找所有的li标签 共会得到25条

  details = ol_tag.find_all('li')

  # li标签迭代 即每条记录中寻找各类信息

  for detail in details:

    #电影排名 存放在em标签中 获取其text属性

    movie_rank= detail.find('em').text

    #电影标题 存放在class='title' 的span标签 获取其text属性

    movie_title= '《' + detail.find('span', class_='title').text + '》'

    #电影别名 与title同理 存放在class='other'的span标签中

    movie_other= '《' + detail.find('span',class_='other').text.split('\xa0')[-1].strip() + '》'

    #电影评论数 运用正则表达式 寻找 xxx人评价的字段 将他变成字符串 用切片的方法取倒数第三个字以前的内容

    movie_CommentNum= detail.find(text=re.compile(r'\d+人评价')).string[:-3]

    #电影评分 寻找class='rating_num'的span标签 获取其text属性

    movie_score= detail.find('span', class_='rating_num').text

    #查看页面结构 会发现上映时间等信息都存在p标签中 所以先获取p标签的所有内容

......
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Notebook EBook note Book eboo

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-3 05:43