正則使用的注意點
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裡的引數很靈活,很神奇。首先,引數是乙個變數,所以呢,元組自然是不能用...