...未完待續
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...