爬取蘇寧易購資訊(物件導向)

2021-09-25 12:28:42 字數 3883 閱讀 5519

蘇寧這些電商的**的資訊比較難爬,這此的**雖然能跑,但是資料並沒有什麼意義。所以只是單純做乙個物件導向爬蟲編碼流程的例子來看就行了

由於資料沒啥意義,我就不分析太多,就給一下**結構

import requests

from lxml import etree

import re

import time

import random

import json

from threading import thread

爬取的顯示器資訊

class suningyigou_xianshiqi:

def __init__(self):

一級頁面的url和header

self.base_url=''

self.headers=

這個是得到第一頁的中的商品的列表頁的html

def get_list_page(self):

html=requests.get(url=self.base_url,headers=self.headers).text

return html

這是得到翻頁後的商品的列表頁html

def get_more_list_page(self,x,y):

url=''+x+'&il=0&st=0&iy=0&isdoufu=1&isnoresult=0&n=1&sesab=acaabaabca&id=identifying&cc=010'+y+'&sub=0&jzq=3350'

headers =

return requests.get(url=url,headers=headers).text

這個方法為了後面做多執行緒傳了頁碼

def get_info(self,j):

設定延遲

delay = random.uniform(3, 6)

time.sleep(delay)

這裡我嘗試用xpath去匹配每頁中的小頁面的商品詳情url資料,由於每個頁碼分成了1,2,3和不寫4個小頁面,所以這裡要多次匹配

html1=etree.html(self.get_list_page())

我這裡並沒能夠使用正則匹配到我要的資料

pat = r'"("'

x=str(j)

y = ''

這裡同樣是用xpath找小頁面中的商品詳情頁的url資料

html2 = etree.html(self.get_more_list_page(x, y))

html_href2 = html2.xpath('//div[@class="res-info"]/div[2]/a/@href')

new_headers =

for i in html_href2:

delay = random.uniform(3, 6)

time.sleep(delay)

拼接請求url

獲得詳情頁html

html_str = requests.get(url=info_page_href, headers=new_headers).text

用正則匹配有用的資料,這裡比較坑,不同產品的頁面不同,xpath無法匹配出來我們的資料,但是有人又說能夠匹配出來,不過建議使用xpath,我這裡的資料沒有辦法轉字典

pat1='(.*?) '

usefulinfo_html_str=re.findall(pattern=pat1,string=html_str)

pat2='>(.*?)

usefulinfo_html_str1 = re.findall(pattern=pat2, string=usefulinfo_html_str[0])

清下列表中的空值

while ' ' in usefulinfo_html_str1:

usefulinfo_html_str1.remove(' ')

while '' in usefulinfo_html_str1:

usefulinfo_html_str1.remove('')

輸出資料

print(usefulinfo_html_str1)

這裡和前面的基本一致

for j in range(1,3):

y='&paging='+str(j)

html2=etree.html(self.get_more_list_page(x,y))

html_href2=html2.xpath('//div[@class="res-info"]/div[2]/a/@href')

new_headers =

for i in html_href2:

delay = random.uniform(3, 6)

time.sleep(delay)

html_str = requests.get(url=info_page_href, headers=new_headers).text

pat1 = '(.*?) '

usefulinfo_html_str3 = re.findall(pattern=pat1, string=html_str)

pat2 = '>(.*?)

usefulinfo_html_str4 = re.findall(pattern=pat2, string=usefulinfo_html_str3[0])

while ' ' in usefulinfo_html_str4:

usefulinfo_html_str1.remove(' ')

while '' in usefulinfo_html_str4:

usefulinfo_html_str1.remove('')

print(usefulinfo_html_str4)

html_href1=html1.xpath('div[@class="res-info"]/div[2]/a/@href')

new_headers =

for i in html_href1:

html_str = requests.get(url=info_page_href, headers=new_headers).text

pat1 = '(.*?) '

usefulinfo_html_str5 = re.findall(pattern=pat1, string=html_str)

pat2 = '>(.*?)

usefulinfo_html_str6 = re.findall(pattern=pat2, string=usefulinfo_html_str5[0])

while ' ' in usefulinfo_html_str6:

usefulinfo_html_str1.remove(' ')

while '' in usefulinfo_html_str6:

usefulinfo_html_str1.remove('')

print(usefulinfo_html_str6)

函式執行入口

結果如圖所示

蘇寧易購爬蟲價格尋找

今天做了乙個關於蘇寧易購的爬蟲,找 規律時花了很多時間,終於做出來了。可以找到唯一乙個檔案 nspcsale 比如我這個是 分析一下url,以每個 為分隔,一次搜尋每串數字 比如上面的 000000000646450414 0070167435 502282 r9011303 0.2你會發現這些數字...

618,新版蘇寧易購APP亮相

內容化經營是這兩年電商平台發展的一大趨勢,無論是短 帶貨還是深度測評,年輕一代消費者的注意程式設計客棧力正在下降,眼光卻越來越挑剔。酒香不怕巷子深 的時代已成為過去時,會吆喝,會帶貨的電商平台才能贏得年輕人的青睞。蘇寧易購當然也不例外,從去年 818 期間推出的帶貨短 頭號買家 到吸引 90 後前來...

蘇寧易購 蘇寧小店將獲4 5億美元增資

techweb 5月20日訊息,蘇寧易購日前對外發布公告稱,為保持蘇寧小店業務的穩定發展,推動蘇寧小店未來戰略的實現,經suning smart life股東協商予以提高資本金投入,suning smart life將再新增發行股份45,000萬股普通股,股東great matrix 蘇寧國際以及g...