上篇我們只爬了乙個牌子的文胸,這次我們來多爬幾個牌子的##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這個的作用在於偽裝成瀏覽器進行操作,有些網...