利用python爬蟲爬取京東商城商品圖片
筆者曾經用python第三方庫requests來爬取京東商城的商品頁內容,經過解析之後發現只爬到了商品頁一半的圖片。(這篇文章我們以爬取智慧手機圖片為例)
當滑鼠沒有向下滑時,此時檢視原始碼的話,就會看到上圖的內容,只有三十個 li 標籤(一個li標籤中有一個圖片地址)。
但是滑鼠滑至底部後再檢視原始碼的話就會看到六十個 li 標籤,這才是我們真正需要爬取的內容。下圖是滑鼠滑至底部時的原始碼。
為什麼會出現這種原因呢?這是因為京東商城的商品資訊是通過動態載入的方式進行載入的,而這種頁面又被稱為動態頁面。要想爬取這種頁面就必須模擬瀏覽器的行為,和頁面進行互動。python第三方庫selenium恰好能做到這些,只需要將頁面滑至底部就行。
首先我們通過pip工具來安裝selenium庫:
pip install selenium
通過分析每個頁面的url連結,我找到了京東商品頁每個網頁的url的規律:
# search_p 是要查詢的商品名稱,page後面的值是按照,1,3,5,7,9......的規律遞增的,對應的網頁是第1頁,第2頁,第3頁...... url = "https://search.jd.com/Search?keyword=" + str(search_p) + "&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=" + \ str(search_p) + "&page=" + str(index * 2 + 1)
接著來分析一下圖片的地址,通過分析我找到了兩種圖片連結格式:
一種是上圖所示的格式:
<img width="220" height="220" class="err-product" data-img="1" data-lazy-img="//img11.360buyimg.com/n7/jfs/t5530/246/208784477/340617/68b4fcac/58fad33aN05c25515.jpg">
還有一種是這種格式的:
<img width="220" height="220" class="err-product" data-img="1" src="//img14.360buyimg.com/n7/jfs/t4549/6/4532220459/272946/d0b72af9/59119ddbNd25bdd22.jpg">
確定圖片格式後,定義一個函式來解析網頁中的圖片地址,這裡我用BeautifulSoup4庫對其進行解析。
# 提取網頁的圖片的網址
def parse_html_page(html):
# 對有效圖片網址進行提取
soup = BeautifulSoup(html, 'lxml')
# 定義一個列表來獲取分析得到的圖片的網址
url_items = []
li_tags = soup.find_all('li', 'gl-item')
for li_tag in li_tags:
try:
if len(li_tag.img["src"]) >= 10:
url_items.append(li_tag.img['src'])
else:
pass
except:
if len(li_tag.img["data-lazy-img"]) >= 10:
url_items.append(li_tag.img['data-lazy-img'])
else:
url_items.append(li_tag.img["src"])
return url_items
然後我們開始獲取網頁原始碼,前面已經提到,要想獲取到完整的網頁原始碼,就需要瀏覽器和網頁進行互動,即讓瀏覽器自動執行一個向下滑至網頁底部的動作,停頓幾秒,等待網頁載入完成(這一步必須有,否則獲得的網頁原始碼仍會不完整),待網頁載入完成之後就可以獲取網頁原始碼了。
這裡使用selenium來使瀏覽器自動執行向下滑動至網頁底部的動作:
# 執行頁面向下滑至底部的動作
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
# 停頓5秒等待頁面載入完畢!!!(必須留有頁面載入的時間,否則獲得的原始碼會不完整。)
time.sleep(5)
網頁原始碼獲取成功之後,便可以用urlretrieve(url, filename=path)方法來定義下載函式。
最後總結一下這個爬蟲,有幾個方面需要注意:1,每個商品頁面對應的url。2,如何利用selenium + 瀏覽器來解決獲取動態頁面的原始碼的問題。3,如何完整提取每個商品頁中的60張圖片的url。
相關推薦
利用python爬蟲爬取京東商城商品圖片
筆者曾經用python第三方庫requests來爬取京東商城的商品頁內容,經過解析之後發現只爬到了商品頁一半的圖片。(這篇文章我們以爬取智慧手機圖片為例)當滑鼠沒有向下滑時,此時檢視原始碼的話,就會看到上圖的內容,只有三十個 li 標籤(一個li標籤中有一個圖片地址)。但是滑
利用Python爬蟲爬取京東商品的簡要資訊
一、前言 本文適合有一定Python基礎的同學學習Python爬蟲,無基礎請點選:慕課網——Python入門 申明:例項的主體框架來自於慕課網——Python開發簡單爬蟲 語言:Python2 IDE:VScode二、何為爬蟲 傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的UR
利用Python爬蟲爬取淘寶商品做數據挖掘分析實戰篇,超詳細教程
實戰 趨勢 fat sts AI top 名稱 2萬 安裝模塊 項目內容 本案例選擇>> 商品類目:沙發; 數量:共100頁 4400個商品; 篩選條件:天貓、銷量從高到低、價格500元以上。 項目目的 1. 對商品標題進行文本分析 詞雲可視化 2.
python爬蟲爬取京東店鋪商品價格資料(更新版)
主要使用的庫: requests:爬蟲請求並獲取原始碼 re:使用正則表示式提取資料 json:使用JSON提取資料 pandas:使用pandans儲存資料 ##sqlalchemy :備用方案,上傳資料到mysql 以下是原始碼: # -*- coding:utf
Python的網路爬蟲小系統——爬取京東商城商品資訊
import time from selenium import webdriver keyword = input('請輸入你要搜尋的關鍵字:') brow = webdriver.Firefox() brow.get('http://www.jd.com') searc
Python 爬蟲 爬取京東 商品評論 資料,並存入CSV檔案
利用閒暇時間寫了一個抓取京東商品評論資料的爬蟲。之前寫了抓取拉勾網資料的爬蟲,請 參考1,參考2。 我的開發環境是Windows + Anaconda3(Python 3.6),家用電腦沒安裝Linux(Linux下也是可以的)。 京東的評論資料是通過介面提供的,所以先找
利用Eclipse-Python簡單爬取京東商城書籍資訊進行視覺化
【實驗目的】 熟悉從網上爬取資料到將資料進行視覺化的全部流程,通過例項瞭解並掌握每個過程。 瞭解爬蟲爬取資料的原理,並選擇一種語言程式設計,將資料獲取到資料庫。 熟練使用 eclipse 中 Java 語言操作資料庫資料。 瞭解 ECharts 中各種圖的特
利用python爬蟲爬取圖片並且制作馬賽克拼圖
python爬蟲 splay ise 做事 c-c sea mage item -a 想在妹子生日送妹子一張用零食(或者食物類好看的圖片)拼成的馬賽克拼圖,因此探索了一番= =。 首先需要一個軟件來制作馬賽克拼圖,這裏使用Foto-Mosaik-Edda(網上也有在
Python,自己修改的爬去淘寶網頁的程式碼 解決Python爬蟲爬取淘寶商品資訊也不報錯,也不輸出資訊
程式碼部分: 下面是正確的: import requests import re def getHTMLText(url): try: r = requests.get(url, timeout = 30) r.raise_for_stat
c# 爬蟲爬取京東所有商品資訊
在一個小專案中,需要用到京東的所有商品ID,因此就用c#寫了個簡單的爬蟲。 在解析HTML中沒有使用正則表示式,而是藉助開源專案HtmlAgilityPack解析HTML,找到需要的節點。 一、下載網頁HTML 首先我們寫一個公共方法用來下載網頁的HTML。 在寫下載HTML方
Python,自己修改的爬去淘寶網頁的程式碼 解決Python爬蟲爬取淘寶商品資訊也不報錯,也不輸出資訊
程式碼部分: 下面是正確的: import requests import re def getHTMLText(url): try: r = requests.get(ur
scrapy框架爬取京東商城商品的評論
一、Scrapy介紹 Scrapy是一個為了爬取網站資料,提取結構性資料而編寫的應用框架。 可以應用在包括資料探勘,資訊處理或儲存歷史資料等一系列的程式中。 所謂網路爬蟲,就是一個在網上到處或定向抓取資料的程式,當然,這種說法不夠專業,更專業的描述就是,抓取特定網站網頁的H
爬取京東商城商品信息
final finall pan __name__ cit spi web 爬取 webdriver from selenium import webdriver from selenium.webdriver import ActionChains from se
利用Python批量爬取XKCD動漫圖片,並批量儲存
import requests, os, bs4 url = 'https://xkcd.com' os.makedirs('xkcd',exist_ok = True) while not url.endswith('#'): # download the page
Python爬蟲 爬取網站上的圖片
Python爬蟲 爬取網站上的圖片
Python爬蟲——爬取網頁中的圖片小試牛刀
Preface:以往爬取文字,這次需要爬取圖片pdf,先上手一個例子,爬取pdf,先取得url,然後通過urllib.urlretrieve函式將url的網頁內容遠端下載到本地,第一個引數為url,第二個引數為檔名(程式碼中有誤),第三個引數為回撥函式,可以顯示下載進度。另
python制作爬蟲爬取京東商品評論教程
頭文件 天津 ref back 文字 eai 目的 格式 open 作者:藍鯨 類型:轉載 本文是繼前2篇Python爬蟲系列文章的後續篇,給大家介紹的是如何使用Python爬取京東商品評論信息的方法,並根據數據繪制成各種統計圖表,非常的細致,有需要的小夥伴可以參考下
用scrapy爬取京東商城的商品信息
keywords XML 1.5 rom toc ons lines open 3.6 軟件環境: 1 gevent (1.2.2) 2 greenlet (0.4.12) 3 lxml (4.1.1) 4 pymongo (3.6.0) 5 pyO
Java爬蟲爬取京東商品信息
1.2 image 商品 void code 更改 size pri name 以下內容轉載於《https://www.cnblogs.com/zhuangbiing/p/9194994.html》,在此僅供學習借鑒只用。 Maven地址 <dependency>
scrapy爬取京東商城某一類商品的資訊和評論(二)
2、任務二:爬取商品評論資訊 如果不需要爬取使用者的地域資訊,那麼用這個網址爬就好: http://club.jd.com/review/10321370917-1-1-0.html 其中10321370917是商品的ID,評論的第一頁就是 -1-1-0.htm