python爬取京東文胸資料 三

2021-09-01 09:14:53 字數 3144 閱讀 4626

上篇我們只爬了乙個牌子的文胸,這次我們來多爬幾個牌子的

##1.爬取不同牌子的url

其實可以直接爬那個href,但我發現有的帶了https有的沒帶就索性直接取id拼接了

import requests

import json

import threading

import time

import re

from lxml import etree

class cup:

def __init__(self):

self.url = ''

url_list =

url = ''

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

html = etree.html(html)

cpu_link = html.xpath('//div[@class="p-icons"]/@id')

for i in cpu_link:#網頁字尾

i = i[6::] #得到數字的部分

fin_url = f''

#format的新用法

return url_list

def get_json(self,url):

res = requests.get(url, headers=self.headers).text

s = re.compile(r'fetchjson_comment.*?\(')

uesless = str(s.findall(res))

jd = json.loads(res.lstrip(uesless).rstrip(');'))

com_list = jd['comments']

for i in com_list:

print(i['productcolor'],i['productsize'])

if __name__ == '__main__':

pa = cup()

url_list = pa.vari_cpu()

for j in url_list:

for i in range(3):

js_url = j+'&score=0&sorttype=5&page=%d&pagesize=10&isshadowsku=0&rid=0&fold=1'%i

time.sleep(1)

t = threading.thread(target=pa.get_json, args=(js_url,))

t.start()

我直接把json的url裡面的id換成各自的id了,發現竟然可行,那就可行吧,省的麻煩.

這裡還是有不完善的地方,就是那個執行緒,等會兒去補補執行緒程序內容,再改進一波,這個不敢爬多,先微微爬點看看,不過我看那一堆玩意兒是貞德多,就不發了

寧外我還發現它的首頁竟然還藏著乙個ajax,當你不下拉時就30個牌子,一下拉變60個了…

改進在於實現了多個牌子和執行緒池的改進

import requests

import json

from concurrent.futures import threadpoolexecutor

import time

import re

from lxml import etree

class cpu:

def __init__(self):

self.url = ''

url_list =

url = ''

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

html = etree.html(html)

cpu_link = html.xpath('//div[@class="p-icons"]/@id')

for i in cpu_link:#網頁字尾

i = i[6::] #得到數字的部分

fin_url = f''

#format的新用法

return url_list

def get_json(self,url):

res = requests.get(url, headers=self.headers).text

s = re.compile(r'fetchjson_comment.*?\(')#匹配無關符號,每天會變所以用正則匹配

uesless = str(s.findall(res)) #變成字串供下面使用

jd = json.loads(res.lstrip(uesless).rstrip(');'))#去掉無關符號

com_list = jd['comments']

for i in com_list:

print(i['productsize'])

def get_list(self):

fin_url=

url_list = self.vari_cpu()

for j in url_list:

for i in range(5):

js_url = j + '&score=0&sorttype=5&page=%d&pagesize=10&isshadowsku=0&rid=0&fold=1' % i # json的url(有規律)

return fin_url

if __name__ == '__main__':

pa = cpu()

fin_url = pa.get_list()

with threadpoolexecutor(max_workers=8) as pool:

results = pool.map(pa.get_json,fin_url)

for i in results:

print(i)

python京東商品 Python爬取京東商品資料

對京東某一商品資訊頁面的html 進行分析。能夠發現它的圖書產品資訊頁面都含有這樣一段 不同類的商品頁面有些不同 window.pageconfig 顯然這就是我們須要的商品資訊,python 例如以下 import json import re import urllib for i in ran...

Python爬取京東商品

自動開啟京東首頁,並輸入你要搜尋的東西,進入介面進行爬取資訊 from selenium import webdriver import time class jdspider object def init self self.browser webdriver.chrome self.url s...

python爬取京東評論

這不是我的第乙個爬蟲,但大多數都是像這樣簡單粗暴的,因為一開始對於定義函式,然後再進行相應的操作,是比較困難的,這能直接寫for迴圈語句。然後,我們便開始進行相應的爬蟲第一步 匯入必要的包 import requests import json header這個的作用在於偽裝成瀏覽器進行操作,有些網...