Python-爬蟲實戰 簡單爬取豆瓣top250電影保存到本地


爬蟲原理

  1. 發送數據
  2. 獲取數據
  3. 解析數據
  4. 保存數據

requests請求庫

res = requests.get(url="目標網站地址")

獲取二進制流方法:res.content

獲取文本方法:res.text

re正則模塊

re.findall("匹配規則","獲取到的數據","匹配模式")

re.findall('<div class="item">.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span>(.*?)人評價</span>', response.text, re.S)

貪婪匹配:.*? 過濾任何內容

非貪婪匹配:(.*?) 提供內容

with open() 保存數據

with open():  # wt(write + txt)  wb (write + bytes)

爬蟲精髓

  1. 分析網站的通信流程

  2. 分析查找數據從何而來

  3. 分析目標網站的反爬策略

  4. 根據目標網站的反爬策略編寫攻擊手段,獲取數據

json格式化

json是一種第三方的數據格式

python中可以使用方法將json轉換為可讀取的數據類型

json.jumps()	#將python數據格式轉換為json格式
json.loads()	#將json格式轉換為python數據格式

爬取豆瓣電影排行榜top250

#導入requests庫
import requests
import json

#分析豆瓣網站每頁數據的url,利用for循環將每頁進行 解析數據操作
num = 0
for i in range(10):
    url = f"https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start={num}&limit=20"
    num += 20

    #獲取數據並將獲取到的json數據轉換為python格式數據類型
    w = requests.get(url=url)
    w = json.loads(w.text)

    #利用json轉換完成后為列表類型,可在上面用print(type())查看類型,利用for循環將列表的每個元素讀取,進行索引取值。
    for line in w:

        move_name = line["title"]
        move_grade = line["rating"][0]
        move_url = line["url"]
        move_type = line["types"]
        move_rank = line["rank"]

        move_list = f'''
        電影名字:{move_name}
        電影分數:{move_grade}
        電影鏈接:{move_url}
        電影類型:{move_type}
        電影排行:{move_rank}
              '''
        #保存數據
        with open("douban2.txt","a",encoding="utf8") as f:
            f.write(move_list + "\n")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM