Python爬蟲入門教程,通過爬蟲實戰學會爬蟲。

2021-10-16 05:16:53 字數 4198 閱讀 1192

...未完待續

requests簡介:python中原生的一款基於網路請求的模組,功能強大,簡單便捷,效率極高.

作用: 模擬遊覽器請求。

安裝:pip install requests

使用:指定url

發起請求

獲取響應資料

持久化儲存

import requests

if __name__ ==

'__main__'

:# 指定url

url =

''# 發起請求

response = requests.get(url=url)

# 獲取響應資料

page_text = response.text

print

(page_text)

# 持久化儲存

with

open

('../page/sogou.html'

,'w'

, encoding=

'utf-8'

)as fp:

fp.write(page_text)

print

('爬蟲結束'

)

資料解析分類:xpath,bs4和正則。

原理:解析的區域性文字內容都會在標籤或標籤對應的屬性之間進行儲存,進行指定標籤的定位,標籤或標籤對應的屬性中的資料進行提取(解析)

page_text  = response.text

soup = beautifulsoup(page_text,

'lxml'

) soup.tagname 返回html中第一次出現的tagname標籤

soup.find(

'tagname'

) 等同於soup.tagname

屬性定位

print

(soup.find(

'div'

, class_/

id/attr=

'column'))

soup.find_all(

'div'

) 返回符合要求的所有標籤

-select

select(

'某種選擇器(id,class,標籤...選擇器)'

) 返回的是乙個列表

層級選擇器

soup.select(

'.tang > ul > li > a'

)>表示乙個層級

soup.select(

'.tang > ul a'

) 空格代表多個層級

獲取標籤之間的文字資料

- soup.a.text/string/get_text(

)兩個屬性乙個方法

- text/get_text(

) 獲取某乙個標籤中所有的文字內容

- string 可以獲取標籤下直系的文字

獲取標籤之間的屬性值

- soup.a[

'href'

]

import requests

from bs4 import beautifulsoup

if __name__ ==

'__main__'

:# 對首頁的頁面資料進行爬取

headers =

url =

''page_text = requests.get(url=url, headers=headers)

.text

# 在首頁中解析章節的標題和詳情頁的url

# 1. 例項化beautifulsoup物件,並將頁面原始碼資料載入到該物件中

soup = beautifulsoup(page_text,

'lxml'

)# 解析章節資料和詳情頁url

li_list = soup.select(

'.book-mulu > ul > li'

) fp =

open

('./sangou'

,'w'

,encoding=

'utf-8'

)for li in li_list:

title = li.a.string

detail_url =

''+li.a[

'href'

]# 對詳情頁發起請求,解析出章節內容

detail_text = requests.get(url=detail_url, headers=headers)

.text

# 解析出詳情頁中的章節內容

detail_soup = beautifulsoup(detail_text,

'lxml'

) div_tag = detail_soup.find(

'div'

,class_=

'chapter_content'

)# 解析到的章節內容

content = div_tag.text

fp.write(title+

':'+content+

'\n'

)print

(title,

'爬取成功!!!'

)

etree.html(

'page_text'

)

//div[@class

="table"

] tag[@attrname=

"attrvalue"

]

//div[@class

="table"

]/p[

3] 索引是從1開始的。

注意點:

/從根節點開始定位,表示的是乙個層級

//表示的是多個層級,可以表示從任意位置開始定位

取文字:

/text() 取到的列表需要用索引值取出文字,獲取的標籤中直系內容

//text() 標籤中非直系的所有文字內容

取屬性:

/@attrname

import requests

from lxml import etree

import os

if __name__ ==

'__main__'

:# 爬取頁面原始碼資料

headers =

url =

''response = requests.get(url=url,headers=headers)

# response.encoding='utf-8'

page_text = response.text

# 解析資料 src和alt屬性值

# 通用處理中文亂碼的解決方式

img_name = img_name.encode(

'iso-8859-1'

).decode(

'gbk'

)# print(img_name,img_src)

# 請求進行持久化儲存

img_data = requests.get(url=img_src, headers=headers)

.content

img_path =

'pic/'

+ img_name

with

open

(img_path,

'wb'

)as fp:

fp.write(img_data)

print

(img_name,

)

python爬蟲入門教程

前言 在爬蟲系列文章 優雅的http庫requests 中介紹了 requests 的使用方式,這一次我們用 requests 構建乙個知乎 api,功能包括 私信傳送 文章點讚 使用者關注等,因為任何涉及使用者操作的功能都需要登入後才操作,所以在閱讀這篇文章前建議先了解python模擬知乎登入 現...

python爬蟲入門教程 Python 爬蟲介紹

一 什麼是爬蟲 爬蟲 一段自動抓取網際網路資訊的程式,從網際網路上抓取對於我們有價值的資訊。二 python爬蟲架構 網頁解析器 將乙個網頁字串進行解析,可以按照我們的要求來提取出我們有用的資訊,也可以根據dom樹的解析方式來解析。網頁解析器有正規表示式 直觀,將網頁轉成字串通過模糊匹配的方式來提取...

python爬蟲(1) 入門教程

網頁一般由三部分組成,分別是 html 超文字標記語言 css 層疊樣式表 和 jscript 活動指令碼語言 1 html html 是整個網頁的結構,相當於整個 的框架。帶 符號的都是屬於 html 的標籤,並且標籤都是成對出現的。2 css css 表示樣式,圖 1 中第 13 行 style...