爬取豆瓣電影TOP250

2021-10-03 17:13:47 字數 3821 閱讀 6809

# 利用css選擇器對電影的資訊進行爬取

import requests

import parsel

import csv

import time

import re

class

cssspider

:def

__init__

(self)

: self.headers =

defget_dp

(self, url)

: response = requests.get(url, headers=self.headers)

return response.text

defparsel_dp

(self, response)

: data =

selector = parsel.selector(response)

li = selector.css(

'ol.grid_view li'

)for dd in li:

'span.title::text'

).get())

'img::attr(src)'

).get())

'span.rating_num::text'

).get())

'|','',

str(dd.css(

'div span:nth-child(4)'

).get())

))'|',"",

str(dd.css(

'span.inq'

).get())

))# for k, v in dic.items():

# data_str_done =

str(data)

data_str_done_new = re.sub(

"\[|\]|\'",""

, data_str_done)

print

(data)

data =

with

open

('豆瓣top250css.csv'

,'a'

, encoding=

'utf-8'

, newline='')

as fp:

fp.write(data_str_done_new +

'\n'

)def

wirte_head

(self)

:with

open

('豆瓣top250css.csv'

, mode=

'w', encoding=

'utf-8'

, newline='')

as fp:

fp.write(

"電影名,連線,電影評分,評價人數,內容簡介"

+'\n'

)def

main

(self, page)

: self.wirte_head(

)for i in

range(0

,int

(page*25)

,25):

url = f''

res = self.get_dp(url)

time.sleep(3)

self.parsel_dp(res)

print

(f'正在爬取頁'

)if __name__ ==

'__main__'

: spider = cssspider(

) page =

input

("請輸入你想爬多少頁:"

) spider.main(page)

在 css 中,選擇器是一種模式,用於選擇需要新增樣式的元素。

「css」 列指示該屬性是在哪個 css 版本中定義的。(css1、css2 還是 css3。)

w3c指南:

選擇器例子例子描述

.class

.intro

選擇 class=「intro」 的所有元素。

#id#firstname

選擇 id=「firstname」 的所有元素。**

選擇所有元素。

element

p選擇所有 元素。

element,element

div,p

選擇所有

元素和所有

元素。element

element

div p

選擇 元素內部的所有

元素。element>element

div>p

選擇父元素為

元素的所有

元素。[attribute]

[target]

選擇帶有 target 屬性所有元素。

[attribute=value]

[target=_blank]

選擇 target="_blank" 的所有元素。

標籤選擇器其實就是我們經常說的html**中的標籤。例如html、span、p、div、a、img等等;比如我們想要設定網頁中的p標籤內一段文字的字型和顏色,那麼css**就如下所示:

css標籤選擇器的介紹

標籤選擇器、類選擇器、id選擇器

類選擇器在我們今後的css樣式編碼中是最常用到的,它是通過為元素設定單獨的class來賦予元素樣式效果。

使用語法:(我們這裡為p標籤單獨設定乙個類選擇器.content,**就如下所示)

css標籤選擇器的介紹

標籤選擇器、類選擇器、id選擇器

詳細講解:

1、類選擇器都是使用英文圓點(.)開頭;

2、每個元素可以有多個類名,,名稱可以任意起名(但不要起中文,一般都是與內容相關的英文縮寫)

3、類選擇器只會改變類下的元素樣式,而不會改變其它標籤的預設樣式;

我們上邊的頁面在瀏覽器上顯示的效果就如下所示:(content下的文字內容顏色變成了紅色,字型變成了16px)

id選擇器類似於類選擇符,作用同類選擇符相同,但也有一些重要的區別。

使用語法:

css標籤選擇器的介紹

標籤選擇器、類選擇器、id選擇器

詳細講解:

1、id選擇器為標籤設定id=「id名稱」,而不是class=「類名稱」。

2、id選擇符的前面是符號為井號(#),而不是英文圓點(.)。

3、id選擇器的名稱是唯一的,即相同名稱的id選擇器在乙個頁面只能出現一次;

可以多個選擇器一起使用,就是組合選擇器

可以用 :: 指定選擇標籤的屬性。

:last-child

p:last-child

選擇所有p元素的最後乙個子元素

:last-of-type

p:last-of-type

選擇每個p元素是其母元素的最後乙個p元素

:not(selector)

:not§

選擇所有p以外的元素

:nth-child(n)

p:nth-child(2)

選擇所有 p 元素的父元素的第二個子元素

:nth-last-child(n)

p:nth-last-child(2)

選擇所有p元素倒數的第二個子元素

豆瓣Top250電影爬取

from bs4 import beautifulsoup 網頁解析,獲取資料 import re 正規表示式,進行文字匹配 import urllib.request,urllib.error 制定url,獲取網頁資料 import xlwt 進行excel操作 import sqlite3 進行...

python爬取豆瓣電影top250

簡要介紹 爬取豆瓣電影top250上相關電影的資訊,包括影片鏈結 影片名稱 上映時間 排名 豆瓣評分 導演 劇情簡介。使用 requests etree xpath 1 檢視網頁資訊,確定爬取的內容,建立資料庫 class spiderdata peewee.model url peewee.cha...

爬取豆瓣Top250

requests庫可以自動爬取html頁面,自動網路請求提交。安裝方法 pip install requests requests庫主要有7個方法 首先開啟網頁 豆瓣top250 然後f12,得到如下圖 我們要找的內容在紅框裡面。這個頁面有25個電影,第乙個頁面 第二個頁面 我們可以觀察到 每個頁面...