1. 程式人生 > >八個commit讓你學會爬取京東商品資訊

八個commit讓你學會爬取京東商品資訊

我發現現在不用標題黨的套路還真不好吸引人,最近在做相關的事情,從而稍微總結出了一些文字。我一貫的想法吧,雖然才疏學淺,但是還是希望能幫助需要的人。部落格園實在不適合這種章回體的文章。這裡,我貼出正文的前兩個部分,算個入口吧。

為了防止在看完了之後覺得其實這不是我的興趣範圍,我先說一下這8個commit都涉及啥,粗略的涉及都有,爬取京東圖書程式設計書籍的名稱,標題,價格,好評率。然後涉及如何寫log以及多程序。

完整的部分可以在https://rogerzhu.gitbooks.io/python-commit-by-commit/content/ 這裡看到。程式碼呢,可以在https://github.com/rogerzhu/relwarcDJ 這裡獲取。

python 爬蟲 commit by commit(一)

"F12才是爬蟲開發的最好的朋友" -- by 我自己

既然叫commit by commit,那就要按照自己給自己定下的規矩來寫。在把程式碼clone到本地之後,你可以用git reset --hard 6fda96eae來退回到程式碼的第一個版本。別擔心回不去後面的版本,這commit都在github都能看到,即使你不知道一些奇技淫巧的git命令也沒啥,大膽幹。

首先,我覺得我應該說這個commit我想幹嘛,第一個commit,我是想作為熟悉的門檻,所以這個commit最開始我的本意是想獲得京東圖書程式語言第一頁上面的書名,連結。

對於這個commit,當你輸入如下命令開始執行時:

你應該能看到如下的結果

面已經扯了兩篇了,那麼從這篇開始步入技術的正軌了,其實從骨子裡我是很討厭那種教程裡敲半個小時程式碼,最後發現就是一個輸出了一個星號組成的圖案。我覺得,入門級別的程式碼得用不超過10分鐘的時間幹出一點你能看得到,有成就感的正事才能吸引大部分的注意力。可惜啊,C++在這方面確實很難做到,而python在這方面絕對是擅長。所以,第一個commit雖然我的comment是ugly commit,但是絕對能幹活。

既然是入門級別的文章,那麼就從最基本的部分開始,當你瀏覽一個網頁的時候,實際上,你在瀏覽什麼?實際上你在瀏覽的是伺服器傳回來的一系列檔案,這一系列檔案由瀏覽器解析,然後呈現給你。比如我想看看京東圖書程式語言下面的所有圖書,我只要用滑鼠一點一點的點到我想要的地方就可以看到我需要的網頁。

是作為一個程式設計師,GUI並算是一個高效的互動方式,一個簡單的例子,對於文字可以一目十行,GUI除非你眼睛感測器異於常人或者大腦CPU比一般人要效能好,不然很難做到。對於爬蟲,他不會關心GUI,它的食物只有一種,各類帶格式的檔案。所以,我們需要看到介面背後的原始碼。市面上只要你能見到的瀏覽器,在右鍵選單裡一定會有讓你看到原始碼的選單。但是,在現代網頁越來越豐富的情況下,一個頁面的原始碼檔案實在是太豐富了,按照我最開始的說法,我想找到書名和價格,咋辦?不能用ctrl+f吧,低效不是程式設計師的作為。在這個時候,職業的本能應該驅使你去尋找工具。

開心的是,主流瀏覽器都帶有這種工具,而且獲取這一組工具的方法都是隻要簡單的按下F12就可以了,我敢保證,當你按下這個鍵的時候,你有一種打開了新世界的感覺。比如我用的火狐,按下F12之後在最左邊,你會看到這樣一個圖示:

點選一下這個圖示再移到介面上,你會發現你可以以矩形的方式選擇頁面上的元素。根據人的本能,點選一下,你會發現圖示下面的html會自動定義到選中的元素!這樣,拿到什麼資訊,你只要負責選擇就好了,瀏覽器自帶的工具會自動幫你定位。比如,我想要的圖書的名字和價格,我選中某一格的圖書,就會看到這樣的輸出:

html是一種格式化並且是帶有層級的語言,這樣就會自然引申出一個問題,當我選取一個元素時候,到底採用怎樣的粒度?比如說,就以這個圖書的名字來說,他是在一個列表(li)元素中的一個div中的一個text中的,那麼完全可以直接選取這個text,第二個是通過父級別一點一點的選取。這其實就是一個數據結構大小取捨的問題,而寫程式,我覺得要考慮到擴充套件性和人思維的自然認知性,以便於升級和維護。所以,我一般都是從我自己最自然的認知出發,當我的眼睛看到這個網頁時,我的呆腦,哦不,是大腦會自然把每個圖的一個縮圖,名稱和價格組成的這個方塊歸類為一個小組,於是,我選擇的粒度就是遵從我的內心。

那麼我就用上面說的小箭頭選取到我決定的方塊,可以得到標識這每一方塊的元素是<li>。而在這個HTML中,有無數的li,我們怎麼能定位到我們需要的這個li呢?這裡,讓我不得不想起一個諺語,叫贈人玫瑰手有餘香。在前端程式設計師在開發他們的網頁時,他們需要對元素進行標識,這樣他們才能在程式碼中方便的寫出想要的邏輯。而這個行為,給爬蟲程式設計師們提供了便利,你可以用他們歸類的標識來定位你需要的元素,當然,我這裡說的是在程式碼裡。而beautifulsoup這個包可以非常的方便的讓你完成這件事情,你可以選擇用id,class等等來找到你需要的元素。而在這裡,如果你按照我說的使用箭頭工具的話,會很容易的看到在這個網頁中gl-item這樣的class來標識每一個列表塊。那麼剩下的就是按照已經發現的,翻譯成為程式語言了。

在第一個commit裡面,程式碼一共22行,我都忍不住用截圖的方式展示一下以便於說明。

相關推薦

commit學會京東商品資訊

我發現現在不用標題黨的套路還真不好吸引人,最近在做相關的事情,從而稍微總結出了一些文字。我一貫的想法吧,雖然才疏學淺,但是還是希望能幫助需要的人。部落格園實在不適合這種章回體的文章。這裡,我貼出正文的前兩個部分,算個入口吧。 為了防止在看完了之後覺得其實這不是我的興趣範圍,我先說一下這8個commit都涉及

京東商品資訊

爬取商品的標題、店鋪、價格、評價數以及連結,儲存為Excel。 靜態頁面解析起來比較簡單,有時間再補上分析過程。 效果如下: 附上程式碼: import requests, re, datetime from bs4 import BeautifulSoup im

Scrapy框架基於crawl京東商品資訊爬蟲

Items.py檔案 # -*- coding: utf-8 -*- # Define here the models for your scraped items # See documentation in: # https://doc.scrapy.org/en/latest/topics

python語言用requests庫和BeautifulSoup庫京東商品資訊

分析網頁程式碼後寫出程式碼 程式碼如下: import requests from bs4 import BeautifulSoup def gettext(url): try: r=requests.get(url) r.e

詳細教程 :crawler4j 京東商品資訊 Java爬蟲入門 crawler4j教程

現今比較流行的爬蟲語言,屬Java、paython和c語言,筆者學習的是Java語言,所以介紹下使用Java如何爬取網頁資訊。我們先從一個最原始的Java爬蟲demo開始,再來看如何使用crawler4j這個框架進行爬蟲。Demo使用Java的Url物件,指向網址並建立連線,

python 爬蟲實戰專案--京東商品資訊(價格、優惠、排名、好評率等)

                                                利用splash爬取京東商品資訊一、環境window7python3.5pycharmscrapyscrapy-splashMySQL二、簡介    為了體驗scrapy-spla

python制作爬蟲京東商品評論教程

頭文件 天津 ref back 文字 eai 目的 格式 open 作者:藍鯨 類型:轉載 本文是繼前2篇Python爬蟲系列文章的後續篇,給大家介紹的是如何使用Python爬取京東商品評論信息的方法,並根據數據繪制成各種統計圖表,非常的細致,有需要的小夥伴可以參考下

Python京東商品列表

+= 圖片 info sta HR earch tex new html 爬取代碼: import requests from bs4 import BeautifulSoup def page_url(url): for i in range(1, 3):

Java爬蟲京東商品信息

1.2 image 商品 void code 更改 size pri name 以下內容轉載於《https://www.cnblogs.com/zhuangbiing/p/9194994.html》,在此僅供學習借鑒只用。 Maven地址 <dependency>

利用Python爬蟲京東商品的簡要資訊

一、前言   本文適合有一定Python基礎的同學學習Python爬蟲,無基礎請點選:慕課網——Python入門   申明:例項的主體框架來自於慕課網——Python開發簡單爬蟲   語言:Python2   IDE:VScode二、何為爬蟲   傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的UR

Python資料爬蟲學習筆記(21)京東商品JSON資訊並解析

一、需求:有一個通過抓包得到的京東商品的JSON連結,解析該JSON內容,並提取出特定id的商品價格p,json內容如下: jQuery923933([{"op":"7599.00","m":"9999.00","id":"J_5089253","p":"7099.00"}

網路爬蟲:Python+requests+bs4+xlwt 京東商品存入Excel表

學了網路爬蟲兩週了,還是比較喜歡用網頁級庫requests,很靈活方便,scrapy網站級面向物件庫,還不熟悉,可能是原來c++學習面向物件就沒學好,對面向物件程式設計還沒理解好吧...兩週中爬了淘寶,京東,天貓(爬取失敗,反爬蟲把我這種新手難倒了,登入驗證就卡死),爬取搜狗

Python 爬蟲 京東 商品評論 資料,並存入CSV檔案

利用閒暇時間寫了一個抓取京東商品評論資料的爬蟲。之前寫了抓取拉勾網資料的爬蟲,請 參考1,參考2。 我的開發環境是Windows + Anaconda3(Python 3.6),家用電腦沒安裝Linux(Linux下也是可以的)。 京東的評論資料是通過介面提供的,所以先找

【Python】【爬蟲】京東商品使用者評論(分析+視覺化)

----------------------------------------------------------------------------------------------------------------------------- 1:在商品頁面f1

京東評論資訊

一,爬蟲需求分析 1,需求。   我們需要獲取多個連結的白酒在2018年評論數量。 2,分析。   一個商品頁面有好幾個規格,如圖: 評論區我們需要獲取的資料是當前選擇的商品,而且需要時間順序為2018年的: 這時候得到的評論有很多頁,我們需要一條條的去爬取。 二,誤區 因為時間排序以

Java爬蟲入門實戰:京東圖書資訊

網路爬蟲框架寫網路爬蟲,一個要有一個邏輯順序。本文主要講解我自己經常使用的一個順序,並且本人經常

Python爬蟲實戰(2):京東商品列表

1,引言在上一篇》,爬取了一個用Drupal做的論壇,是靜態頁面,抓取比較容易,即使直接解析html原始檔都可以抓取到需要的內容。相反,JavaScript實現的動態網頁內容,無法從html原始碼抓取

python 京東商品評論

#!/usr/bin/python # -*- coding: UTF-8 -*- import requests impo

Spring Boot + JSoup 抓京東商品資訊

需求分析 匯入京東商品URL列表 生成京東商品資訊並輸出到excel表 思路 讀取excel獲取URL列表 訪問url並獲得HTML原始碼 提取對應的商品資訊欄位 輸出到excel 搭建框架 建立Spring Boot工程 選

克服拖延——7技巧堅持前進

spa 垃圾 事情 工作 自己 清理 項目 技巧 目標 1.應付你的壓力。 很多人發現有壓力的生活是讓他們養成拖延習慣的主要原因。你可以通過健康的方式減壓從而解決這些問題。比如保持充足的睡眠,有足夠的時間來放松,當你需要時可以尋求別人幫助,這些都可以減輕你的壓力。你還可以