IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 通过爬虫获取豆瓣Top250 -> 正文阅读

[Python知识库]通过爬虫获取豆瓣Top250

导入需要的包

import requests
from bs4 import BeautifulSoup
import pandas as pd
import pprint
import json

①下载10个页面的HTML

page_indexs = range(0, 226, 25)
def download_all_htmls():#下载所有列表页面的HTML,用于后续分析
    htmls = []
    for idx in page_indexs:
        url = f"https://movie.douban.com/top250?start={idx}&filter="
        print("craw html:",url)
        r = requests.get(url,headers={'User Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'})
        #if r.status_code !=200:
            #raise Exception("error")
        htmls.append(r.text)
    return htmls
htmls = download_all_htmls()#执行爬取

②解析所爬取的HTML页面得到数据

def parse_single_html(html):#解析单个HTML得到数据
    soup=BeautifulSoup(html,'html.parser')
    article_items = (soup.find("div",class_="article").find("ol", class_="grid_view").find_all("div", class_="item"))
    datas=[]
    for article_item in article_items:
        rank=article_item.find("div",class_="pic").find("em").get_text()
        info=article_item.find("div",class_="info")
        title=info.find("div",class_="hd").find("span",class_="title").get_text()
        stars=(
            info.find("div",class_="bd")
                .find("div",class_="star")
                .find_all("span")
        )
        rating_star=stars[0]["class"][0]
        rating_num=stars[1].get_text()
        comments=stars[3].get_text()
        
        datas.append({
            "rank":rank,
            "title":title,
            "rating_star":rating_star.replace("rating","").replace("-t",""),
            "rating_num":rating_num,
            "comments":comments.replace("人评价","")
        })
    return datas
pprint.pprint(parse_single_html(htmls[0]))
all_datas=[]#执行所有的HTML页面解析
for html in htmls:
    all_datas.extends(parse_single_html(html))
all_datas
len(all_datas)

③将结果导入Excel

df = pd.DataFrame(all_datas)
df
df.to_excel("豆瓣TOP250.xlsx")

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-20 12:27:01  更:2021-10-20 12:28:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:55:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码