使用python怎么爬取網(wǎng)站的購(gòu)買記錄

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)使用python怎么爬取網(wǎng)站的購(gòu)買記錄,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、北海網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為北海等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

python的數(shù)據(jù)類型有哪些?

python的數(shù)據(jù)類型:1. 數(shù)字類型,包括int(整型)、long(長(zhǎng)整型)和float(浮點(diǎn)型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運(yùn)算,有兩個(gè)值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數(shù)據(jù)類型,集合中可以放任何數(shù)據(jù)類型。5. 元組,元組用”()”標(biāo)識(shí),內(nèi)部元素用逗號(hào)隔開。6. 字典,字典是一種鍵值對(duì)的集合。7. 集合,集合是一個(gè)無序的、不重復(fù)的數(shù)據(jù)組合。

第一步:添加必要的庫,創(chuàng)建一個(gè)BUY類

import  requests,re,xlwt

第二步:class Color;

def __init__(self):
    '''添加請(qǐng)求頭'''
    self.headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                      '(KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36',
    }
    #添加查詢訂單地址
    self.port = 'http://xxxxxx.xxfaka.cn/?mod=query&data=xxxxxxxxxxx'

'''請(qǐng)求視頻網(wǎng)頁鏈接'''
def request_link(self):
    self.response = requests.get(self.port, headers=self.headers)
    self.html = self.response.text
    print(self.html)

    if __name__ == '__main__':
    app= Color()
    app.request_link()

直接運(yùn)行之后的數(shù)據(jù)有點(diǎn)多,這里沒有完全顯示

第三步:找到cookie添加到請(qǐng)求頭

根據(jù)搜索資料發(fā)現(xiàn)需要加cookie,然后又去網(wǎng)頁找到cookie添加到請(qǐng)求頭,然后headers會(huì)出現(xiàn)下面這種情況

self.headers = {
                                                    'Cookie':'mysid=bcd178f6a7784bdaf63c03e321cfb77a; PHPSESSID=gml9nd9psrik73840v6jem6mm4; sec_defend=baa2a7703f2f3326fa7a366428aef295ac40ff679f2fec0284578de88e87bcac; sec_defend_time=1',
                                                    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                                                                                                            '(KHTML, like Gecko) Chrome/77.0.3560.141 Safari/537.36',
                                    }

第四步:再次運(yùn)行代碼

這時(shí)候就可以拿到網(wǎng)頁數(shù)據(jù)了

初步打算一次直接匹配一個(gè)訂單全部消息,但是發(fā)現(xiàn)有對(duì)括號(hào)導(dǎo)致一直匹配內(nèi)容為空

</span>  (<font size="2" color="#836FFF">2020-12-24 01:09:09</font>)<br>…太長(zhǎng)了…<hr>

用兩個(gè)replace將括號(hào)替換為空

self.html = self.html.replace('(','')
    self.html = self.html.replace(')', '')
    re.findall(r'…(.*?)…(.*?)…',self.html)

第五步:一條語句扣一個(gè)內(nèi)容,之后在for循環(huán)將對(duì)應(yīng)數(shù)據(jù)放到一個(gè)列表

匹配了六七個(gè)(.?)內(nèi)容,發(fā)現(xiàn)總是不能準(zhǔn)確扣到具體內(nèi)容,有可能好幾條訂單被扣到一個(gè)(.?)里面。這個(gè)時(shí)候可以換個(gè)思路,一條語句扣一個(gè)內(nèi)容,之后在for循環(huán)將對(duì)應(yīng)數(shù)據(jù)放到一個(gè)列表,然后整體再放入列表組成二維列表。

#獲取訂單時(shí)間
            self.order_time = re.findall(r'<font size=".*?" color="#836FFF">(.*?)</font>.*?<br><h5>商品名稱:<a href="\./\?mod=buy&tid=\w?\w?\w?\w?">(.*?)</a></h5>聯(lián)系方式:.*?總價(jià)<font color=".*?">(.*?)</font>元.*?</strong></font>(.*?)<hr>',self.html)
    #獲取商品名稱
    self.pur_info = re.findall(r'',self.html)
    #獲取訂單聯(lián)系方式
    self.contact_info = re.findall(r'',self.html)
    #獲取訂單總價(jià)
    self.price_total = re.findall(r'總價(jià)<font color=".*?">(.*?)</font>元',self.html)
    #獲取賬號(hào)不完全信息
    self.km_info = re.findall(r'</strong></font>(.*?)<hr>',self.html)
    #獲取下單總數(shù)
    self.num_total = re.findall(r'<li><span class="rows">共(.*?)條</span> </li>', self.html)
            temp_info =[]
        for i in range(0,len(self.order_time)):
                    for lie in range(0,6):#lie
                            temp_info.append(self.order_time[lie])
                            temp_info.append(self.pur_info[lie])
                            temp_info.append(self.contact_info[lie])
                            temp_info.append(self.price_total[lie])
                            temp_info.append(self.km_info[lie])
                            temp_info.append(self.num_total[0])
                    temp_info.append(''.join(temp_info))
                    self.account_info.append(list(temp_info))
            print(self.account_info)

寫出來基本就是上面的樣子,運(yùn)行發(fā)現(xiàn)四五秒以后直接卡死,然后半小時(shí)沒動(dòng)重新開機(jī)了,代碼沒保存再運(yùn)行append那就報(bào)錯(cuò)了,就暫時(shí)放棄這種方法,重新回到之前的思路,把數(shù)據(jù)一次都提取出來,既然這單個(gè)的都準(zhǔn)確提取了,放到一起就可以了。把每個(gè)放到一起連接起來運(yùn)行,直接生成了二維數(shù)據(jù)。

for i in range(0,len(self.info)):
            self.info[i] = list(self.info[i])

    #通過這里來判斷訂單的三種情況
    km_info = re.findall(r'>賬號(hào)信息:(.*?)</b><br>',self.info[i][5])
    if km_info==[]:
            km_info = re.findall(r'</b><span class="(.*?)">卡密可能漏發(fā),請(qǐng)聯(lián)系客服</span>',self.info[i][5])
    if km_info == []:
            km_net = re.findall(r'<br>卡密操作:<a href=".(.*?)" title="點(diǎn)擊查看卡密"><button', self.info[i][5])
            km_net = self.port +(''.join(km_net))#多張卡密提取鏈接
            #尚未完成一個(gè)單子多張卡密提取
    self.info[i][5] = km_info

上述就是小編為大家分享的使用python怎么爬取網(wǎng)站的購(gòu)買記錄了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前題目:使用python怎么爬取網(wǎng)站的購(gòu)買記錄
分享鏈接:http://muchs.cn/article34/ijsope.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、用戶體驗(yàn)、搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)