1. 程式人生 > >python3+seleium+chrome headless+mongodb 爬取淘寶產品例項(僅程式碼+結果)

python3+seleium+chrome headless+mongodb 爬取淘寶產品例項(僅程式碼+結果)

學習書籍:《python3 網路爬蟲開發實踐》
視訊地址:例項視訊
1.main.py

import re
from pyquery import PyQuery as pq
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import
expected_conditions as EC from selenium.webdriver.chrome.options import Options #連線到資料庫 from config_seleium import * import pymongo client=pymongo.MongoClient(MONGO_URL) db=client[MONGO_DB] #使用Chrome無頭瀏覽器,即僅在後臺使用 chrome_options=Options() chrome_options.add_argument('--headless') browser=webdriver.Chrome(chrome_options=chrome_options) wait=WebDriverWait(browser,10
) #搜尋頁面 def search(): try: browser.get('https://www.taobao.com') #等待元素id為XXX的出現,10秒後若是還不出現,則報錯 input = wait.until( EC.presence_of_element_located((By.CSS_SELECTOR, '#q')) ) submit=wait.until( EC.element_to_be_clickable((By.CSS_SELECTOR,'#J_TSearchForm > div.search-button > button'
)) ) input.send_keys('美食') submit.click() #等待最下面的總頁數加載出來(意味著前面產品已經全部加載出來了) total=wait.until( EC.presence_of_element_located((By.CSS_SELECTOR,'#mainsrp-pager > div > div > div > div.total')) ) #等該頁面載入完後,輸出一個個產品資訊 get_product() return total.text except TimeoutException: return search() #跳轉到下一頁 def next_page(page_number): try: input = wait.until( EC.presence_of_element_located((By.CSS_SELECTOR, '#mainsrp-pager > div > div > div > div.form > input')) ) submit = wait.until( EC.element_to_be_clickable((By.CSS_SELECTOR, '#mainsrp-pager > div > div > div > div.form > span.btn.J_Submit')) ) input.clear() input.send_keys(page_number) submit.click() #判斷已經跳轉成功,由於此時所處頁面高亮,所以css_selector不同 wait.until( EC.text_to_be_present_in_element((By.CSS_SELECTOR,'#mainsrp-pager > div > div > div > ul > li.item.active > span'),str(page_number)) ) #獲取商品 get_product() except TimeoutException: next_page(page_number) #解析寶貝內容 def get_product(): wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#mainsrp-itemlist .items .item'))) html=browser.page_source #通過PyQuery解析HTML doc=pq(html) items=doc('#mainsrp-itemlist .items .item').items() for item in items: product={ 'image':item.find('.pic .img').attr('src'), 'price':item.find('.price').text().replace('\n',''), 'deal':item.find('.deal-cnt').text()[:-3].replace('\n',''), #去掉"人付款"三個字 'title':item.find('.title').text().replace('\n',''), 'shop':item.find('.shop').text().replace('\n',''), 'location':item.find('.location').text().replace('\n','') } save_to_mongo(product) #引數為一個個產品形成的字典 def save_to_mongo(result): try: if db[MONGO_TABLE].insert(result): print('儲存成功',result) except Exception: print('儲存錯誤',result) def main(): total_String=search() total_Number=int(re.compile('(\d+)').search(total_String).group(1)) for i in range(2,total_Number+1): next_page(i) browser.close() if __name__=='__main__': main()

2.config_seleium.py

#存入MongoDB
MONGO_URL='localhost'
MONGO_DB='taobao'
MONGO_TABLE='meishi'

#定義一個offset偏移量,用於迴圈
GROUP_START=1
GROUP_END=20

#搜尋的關鍵字
KEYWORD='街拍'

3.執行結果
這裡寫圖片描述

相關推薦

python3+seleium+chrome headless+mongodb 產品例項程式碼+結果

學習書籍:《python3 網路爬蟲開發實踐》 視訊地址:例項視訊 1.main.py import re from pyquery import PyQuery as pq from selenium import webdriver from sele

通過selenium +headless瀏覽器資訊

開始使用的是phantomJS瀏覽器 但是出現警告,所以換成火狐的無頭瀏覽器,也可以使用谷歌的 from selenium import webdriver from selenium.webdriver.firefox.options import Options f

python搜尋頁練習

1、本博文中程式碼是轉載內容,原文章地址如下: https://segmentfault.com/a/1190000014688216 2、原作者講解的很詳細,我只是在原文程式碼的基礎上稍作修改,添加了一些註釋及無關緊要的程式碼 3、本篇博文涉及知識點如下: ①通過對比頁面構

python3實現頁面的商品的資料資訊selenium+pyquery+mongodb

1.環境須知 做這個爬取的時候需要安裝好python3.6和selenium、pyquery等等一些比較常用的爬取和解析庫,還需要安裝MongoDB這個分散式資料庫。 2.直接上程式碼 spider.py import re from config

使用selenium結合PhantomJS美食並存儲到MongoDB

cnblogs exc cte ota browser -- pre command out PhantomJS是一種沒有界面的瀏覽器,便於爬蟲 1、PhantomJS下載 2、phantomjs無須安裝driver,還有具體的api參考: http://phantomj

Python3 爬蟲】14_上的手機圖片

head 並且 淘寶網 pan coff urllib images 圖片列表 pic 現在我們想要使用爬蟲爬取淘寶上的手機圖片,那麽該如何爬取呢?該做些什麽準備工作呢? 首先,我們需要分析網頁,先看看網頁有哪些規律 打開淘寶網站http://www.taobao.com/

利用python3評論出問題了,求高手幫忙分析下,急!!!!

這是我按照視訊教程裡面,弄的程式碼,現在有兩個問題 1.程式碼只迴圈一次,而且只運行了最後一個數值 2.生成的Excel表格,不規律,都集中在第一行 coding:utf-8 import requests import re import time import random im

python3商品(更新版)

最近有人反映淘寶的搜尋功能要登入才能用,原先的直接爬取的方法掛了。稍微把之前的程式碼修改了一下,登入採用最簡單的複製cookie來解決。 順便說一下,這只是根據搜尋的的索引介面獲取的資訊,並未深入的獲取每個具體商品的資訊。為了以後有拓展空間,便於爬取詳細的商品資訊,我順便把詳情頁的URL拿下來了。 淘寶的

Python3 爬蟲學習筆記】動態渲染頁面 4 —— 使用Selenium商品

並不是所有頁面都可以通過分析Ajax來完成抓取。比如,淘寶,它的整個頁面資料確實也是通過Ajax獲取的,但是這些Ajax介面引數比較複雜,可能會包含加密祕鑰等,所以如果想自己構造Ajax引數,還是比較困難的。對於這種頁面,最方便快捷的抓取方法就是通過Seleni

[python3.6]爬蟲實戰之女郎圖片

原博主地址:http://cuiqingcai.com/1001.html 原博是python2.7寫的,並且隨著淘寶程式碼的改版,原博爬蟲已經不可用。 參考 http://minstrel.top/TaoBaoMM 這位博主跟我一樣最近正在學習爬蟲。 1 定個小目標 l

python3.x爬蟲:按頁商品列表

import requests import re '''https://s.taobao.com/search?initiative_id=tbindexz_20170315&ie=utf8&spm=a21bo.50862.201856-taobao-it

爬蟲學習之18:使用selenium和chrome-headerless網商品資訊非同步載入網頁

       登入淘寶網,使用F12鍵觀察網頁結構,會發現淘寶網也是非同步載入網站。有時候通過逆向工程區爬取這類網站也不容易。這裡使用selenium和chrome-headerless來爬取。網上有結合selenium和PlantomJS來爬取的,但是最新版的Seleniu

Selenium商品概要入mongodb

enum style div location 如果 ces tex select target 準備: 1.安裝Selenium:終端輸入 pip install selenium 2.安裝下載Chromedriver:解壓後放在…\Google\Chr

python 爬蟲實戰4 MM照片

寫真 換行符 rip 多行 get sts tool -o true 本篇目標 抓取淘寶MM的姓名,頭像,年齡 抓取每一個MM的資料簡介以及寫真圖片 把每一個MM的寫真圖片按照文件夾保存到本地 熟悉文件保存的過程 1.URL的格式 在這裏我們用到的URL是 http:/

用selenium美食

display cts win clas .get cto 分享 element nal ‘‘‘利用selenium爬取淘寶美食網頁內容‘‘‘ import re from selenium import webdriver from selenium.common.

Python 商品信息和相應價格

獲得 com ppa pri 大小 light parent tps 爬取 !只用於學習用途! plt = re.findall(r‘\"view_price\"\:\"[\d\.]*\"‘,html) :獲得商品價格和view_price字段,並保存在plt中 tlt =

爬蟲實例之selenium美食

獲取 web tex 匹配 ive cati def presence dea 這次的實例是使用selenium爬取淘寶美食關鍵字下的商品信息,然後存儲到MongoDB。 首先我們需要聲明一個browser用來操作,我的是chrome。這裏的wait是在後面的判斷元素是

scrapy結合selenium等動態網站

ice 網站 -i war 原因 def exe imp span 1.首先創建爬蟲項目 2.進入爬蟲 class TaobaoSpider(scrapy.Spider): name = ‘taobao‘ allowed_domains = [‘taobao.c

利用Python爬蟲商品做數據挖掘分析實戰篇,超詳細教程

實戰 趨勢 fat sts AI top 名稱 2萬 安裝模塊 項目內容 本案例選擇>> 商品類目:沙發; 數量:共100頁 4400個商品; 篩選條件:天貓、銷量從高到低、價格500元以上。 項目目的 1. 對商品標題進行文本分析 詞雲可視化 2.

利用selenium美食內容

pycharm pid dea int mpi bubuko Go con port 1、啟動pycharm 首先咱們新建一個項目名字大家可以自己設定 接著新建一個spider.p文件 #author: "xian" #date: 2018/5/4 import re #