控制流程,爬取豆瓣電影資訊

2022-09-16 09:00:15 字數 4072 閱讀 3793

if 條件判斷:   # if 條件成立,執行**1,條件不成立,執行**2

**1else:

**2

age = 19

if age >= 18:

print('你已經成年了!')

# 雙分支結構

age = 19

if age >= 18:

print('成年')

else:

print('未成年')

'''

如果 成績》=90,列印"優秀"

如果 成績》=80 並且 成績<90,列印"良好"

如果 成績》=70 並且 成績<80,列印"普通"

其他情況:列印"差"

'''score = int(input('請輸入分數:'))

if score >= 90:

print('優秀')

elif score >= 80:

print('良好')

elif score >= 70:

print('普通')

else:

print('差')

迴圈就是重複做一件事

range(10) 預設從0開始,10結束,預設步長為1,顧頭不顧尾

print(list(range(10)))

# 列印結果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

for i in range(10):   # 把列表內部的值迴圈列印出來  i = 0 , i = 2  。。。。。i = 9

print(i)

for 迴圈例子:

for i in range(32):

print(f'8月日刷牙')

注:f 格式化輸出 》字串拼接 有了f {}就有了特殊含義

for 迴圈巢狀:內部迴圈完全走完,才會走一次外層迴圈,每次走入外層迴圈,內層迴圈都會重置

for j in range(1,13):  # j =1 # j = 2

for i in range(1, 32): # 控制的是日

print(f'月日刷牙')

for i in range(101):

if i == 51:

break # 中斷迴圈

print(i)

# 只列印0-50, 當i = 51時迴圈中斷,跳出本層迴圈

for i in range(101):

if i == 51:

continue # 跳出本次迴圈,不執行本次**,進入下次迴圈

print(i)

# 不列印i = 51

for迴圈習題

for i in range(1, 13):      # 控制月

for j in range(1,32): # 控制日

if j == 2 and i > 28:

continue

if j in [4, 6, 9, 11] and i > 30:

continue

print(f'月日刷牙')

爬蟲三部曲:

傳送請求

解析資料

儲存資料

爬蟲精髓:

分析**的通訊流程

分析查詢資料從何而來

分析**的反爬策略

根據**的反爬策略編寫攻擊手段,獲取資料

爬取豆瓣電影top250詳情

'''

第一頁:

第二頁:

第三頁:

第四頁:

……第十頁:

'''import requests

import re

# 1. 獲取所有電影資訊的url

num = 0

for line in range(10):

url = f''

# print(url)

num += 25

# 2.發起請求

response = requests.get(

url=url

)# print(response.text)

'''1.電影名稱

2.電影詳情頁鏈結

3.電影評分

4.電影評價人數

'''movie_list = re.findall(

'.*?.*?(.*?).*?(.*?).*?(.*?)人評價',

response.text, re.s)

count = 1

with open('douban.txt', 'a', encoding='utf8') as f:

for i in movie_list:

movie_url = i[0]

movie_name = i[1]

movie_score = i[2]

movie_count = i[3]

f.write(f',電影名字:,評分:,評價人數: \n')

print('資料儲存成功,爬蟲程式結束!')

爬取豆瓣電影介面

分析目標**的非同步請求返回的資料(介面)

json.loads() 把json資料型別轉化為python資料型別

json.dumps() 把python資料型別轉化為json資料型別

'''

'''import requests

import json

# 1.拼接url

num = 0

for i in range(10):

url = f''

# print(url)

num += 20

# 2.傳送請求

response = requests.get(

url=url

)# print(response.text)

# 把json資料型別轉化為python資料型別

# python_data = json.loads(response.text)

# print(type(python_data))

movie_list = json.loads(response.text)

# 迴圈電影列表資料中的每乙個字典

for movie_dic in movie_list:

# 2. 提取資料 電影名稱,電影評分,電影的排名,位址,詳情頁位址

movie_name = movie_dic['title']

movie_score = movie_dic['rating'][0]

movie_rank = movie_dic['rank']

movie_img_url = movie_dic['cover_url']

movie_url = movie_dic['url']

# 3. 儲存資料

movie_data = f'''

電影名稱:

電影評分:

電影排名:

'''with open('豆瓣.txt', 'a', encoding='utf8') as f:

f.write(movie_data)

print('儲存資料成功,爬蟲程式結束')

爬取中國黃頁手機號資訊

import requests

import re

url = ''

# user-agent: 反爬策略,判斷是否為瀏覽器

headers =

response = requests.get(

url=url,

headers=headers

)# print(response.text)

phone_number = re.findall('',response.text,re.s)[0]

print('手機號:', phone_number)

爬取豆瓣網電影資訊

coding utf 8 import urllib2 import bs4 from bs4 import beautifulsoup 爬取豆瓣網電影簡介,包括電影名,導演,評分以及介紹等 class dbtop def init self self.usr agent mozilla 5.0 w...

python爬蟲爬取豆瓣電影資訊

我們準備使用python的requests和lxml庫,直接安裝完之後開始操作 目標爬取肖申克救贖資訊 傳送門 導入庫import requests from lxml import etree 給出鏈結 url 獲取網頁html前端 一行搞定,在requests中已經封裝好了 data reque...

爬取豆瓣電影所有型別的電影資訊

把文字儲存在本地 filename 表示文字的路徑,操作文字的方式許可權 with open filename,a encoding utf 8 as f f.write html f.write n def loadnextlink url,path request urllib.request....