python爬蟲筆記 day3

2021-09-01 15:58:17 字數 1565 閱讀 1115

正則使用的注意點

re.findall("a(.*?)b","str"),能夠返回括號中的內容,括號前後的內容起到定位和過濾的效果

原始字串r,待匹配字串中有反斜槓的時候,使用r能夠忽視反斜槓帶來的轉義的效果

點號預設情況匹配不到\n

\s能夠匹配空白字元,不僅僅包含空格,還有\t|\r\n

xpath學習重點

使用xpath helper或者是chrome中的copy xpath都是從element中提取的資料,但是爬蟲獲取的是url對應的響應,往往和elements不一樣

獲取文字

@符號a/@href

//ul[@id="detail-list"]

在xpath最前面表示從當前html中任意位置開始選擇

li//a 表示的是li下任何乙個標籤

lxml使用注意點

lxml能夠修正html**,但是可能會改錯了

使用etree.tostring觀察修改之後的html的樣子,根據修改之後的html字串寫xpath

lxml 能夠接受bytes和str的字串

提取頁面資料的思路

先分組,渠道乙個包含分組標籤的列表

遍歷,取其中每一組進行資料的提取,不會造成資料的對應錯亂

xpath的包含

//div[contains(@class,'i')]

實現爬蟲的套路

準備url

準備start_url

xpath

尋找url位址,部分引數在當前的響應中(比如,當前頁碼數和總的頁碼數在當前的響應中)

準備url_list

頁碼總數明確

url位址規律明顯

傳送請求,獲取響應

新增隨機的user-agent,反反爬蟲

新增隨機的**ip,反反爬蟲

在對方判斷出我們是爬蟲之後,應該新增更多的headers欄位,包括cookie

cookie的處理可以使用session來解決

準備一堆能用的cookie,組成cookie池

如果不登入

如果登入

準備多個賬號

使用程式獲取每個賬號的cookie

之後請求登入之後才能訪問的**隨機的選擇cookie

提取資料

確定資料的位置

如果資料在當前的url位址中

提取的是列表頁的資料

直接請求列表頁的url位址,不用進入詳情頁

提取的是詳情頁的資料

確定url

傳送請求

提取資料

返回如果資料不在當前的url位址中

在其他的響應中,尋找資料的位置

從network中從上往下找

使用chrome中的過濾條件,選擇出了js,css,img之外的按鈕

使用chrome的search all file,搜尋數字和英文

資料的提取

xpath,從html中提取整塊的資料,先分組,之後每一組再提取

re,提取max_time,price,html中的json字串

json

儲存儲存在本地,text,json,csv

儲存在資料庫

商業爬蟲學習筆記day3

一.付費 傳送請求的兩種方式 第一種方式 1 ip,形式如下 money proxy 2 的處理器 proxy handler urllib.request.proxyhandler money proxy 3 通過處理器建立opener opener urllib.request.build op...

Python學習筆記 DAY 3

1.集合 集合是乙個無序的,不重複的資料組合,它的主要作用 去重 關係測試 list 1 set 1,3,5,7,9,4,6,list 2 set 2,4,5,6,8,10 print list 1.union list 2 print list 1.difference list 2 print ...

Python學習筆記DAY3 函式

關於函式,程式設計 少的了函式,python裡的函式呢,使用def 來定義,如下例子 def fun print 這是乙個函式 用def來定義,下面縮排的為函式體,呼叫的話直接呼叫函式名來實現。提到函式自然會想到引數,python裡的引數很靈活,很神奇。首先,引數是乙個變數,所以呢,元組自然是不能用...