用selenium爬取淘寶美食

這里用淘寶來練習(xí)一下 selenium 的使用,可以替換關(guān)鍵字环鲤,爬取不同的物品纯趋,比如說衣服、鞋子之類的冷离。


from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from pyquery import PyQuery as pq
import re,pymongo

borwser = webdriver.Chrome()#聲明瀏覽器
url = 'https://www.taobao.com/'
wait = WebDriverWait(borwser,10)#顯示等待
key_word = '美食'
def search(key_word):
    try:
        borwser.get(url)
        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(key_word)
        submit.click()
        total = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#mainsrp-pager>div>div>div>div.total')))
        get_products()
        return total.text
    except TimeoutError:
        return search(key_word)

這一部分主要是一些配置的信息吵冒,打開淘寶,找到輸入框西剥,然后輸入關(guān)鍵字確定痹栖,如果在規(guī)定的時間內(nèi)沒有響應(yīng),可能是網(wǎng)速太慢瞭空,我們用了遞歸調(diào)用再次執(zhí)行代碼就好了揪阿。

def next_page(number):
    #處理翻頁的操作
    #頁面最下方翻頁地方輸入頁碼的框出來沒有
    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()#先清理一下輸入框里的頁碼數(shù)字
    input.send_keys(number)#填入翻頁數(shù)字
    submit.click()#點擊確定
    #判斷是否翻頁成功
    wait.until(EC.text_to_be_present_in_element((By.CSS_SELECTOR,'#mainsrp-pager>div > div > div > ul > li.item.active > span'),str(number)))
    get_products()

這一部分是處理翻頁的,代碼注釋已經(jīng)很詳細(xì)了咆畏,不再過多啰嗦南捂。

def get_products():
    #解析詳情列表
    wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#mainsrp-itemlist .items .item')))#看看頁面加載出來沒有
    html = borwser.page_source#得到網(wǎng)頁的源代碼
    doc = pq(html)#用pq解析網(wǎng)頁源代碼
    #得到所有選中的內(nèi)容
    items = doc('#mainsrp-itemlist .items .item').items()
    for item in items:
        products = {
            'image': item.find('.pic .img').attr('data-src'),
            'price': item.find('.price').text()[3:],
            'deal': item.find('.deal-cnt').text(),
            'title': item.find('.title').text(),
            'shop': item.find('.shop').text(),
            'location': item.find('.location').text()
        }
        print(products)
        save_products(products)

這里是解析頁面美食部分的代碼,當(dāng)然你的關(guān)鍵字是什么就解析什么旧找,這里用到了 pyquery 這個庫溺健,你也可以使用其他的解析方法,比如說 xpath 钮蛛、re 鞭缭、bs4 等等

MONGO_URL = 'localhost'#本地數(shù)據(jù)庫
MONGO_DB = 'taobaomeishi'#數(shù)據(jù)庫名稱
MONGO_TABLE = 'products'
client = pymongo.MongoClient(MONGO_URL)
db = client[MONGO_DB]

def save_products(result):
    try:
        if db[MONGO_TABLE].insert(result):
            print('保存MONGODB成功',result)
    except Exception:
        print('保存到MONGODB失敗',result)



if __name__ == '__main__':
    total = search(key_word)
    total = int(re.findall('(\d+)',total)[0])
    for i in range(2,5):
        next_page(i)

覺得不錯點個贊吧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魏颓,一起剝皮案震驚了整個濱河市岭辣,隨后出現(xiàn)的幾起案子甸饱,更是在濱河造成了極大的恐慌,老刑警劉巖搞动,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矗烛,死亡現(xiàn)場離奇詭異瞭吃,居然都是意外死亡歪架,警方通過查閱死者的電腦和手機(jī)和蚪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浆洗,“玉大人伏社,你說我怎么就攤上這事摘昌〉谘妫” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵湘纵,是天一觀的道長。 經(jīng)常有香客問我铺敌,道長偿凭,這世上最難降的妖魔是什么弯囊? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任斤斧,我火速辦了婚禮撬讽,結(jié)果婚禮上游昼,老公的妹妹穿的比我還像新娘酱床。我一直安慰自己,他們只是感情好罐寨,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瓶蝴,像睡著了一般舷手。 火紅的嫁衣襯著肌膚如雪男窟。 梳的紋絲不亂的頭發(fā)上歉眷,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機(jī)與錄音庸追,去河邊找鬼淡溯。 笑死咱娶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的琼了。 我是一名探鬼主播雕薪,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼凶掰,長吁一口氣:“原來是場噩夢啊……” “哼懦窘!你這毒婦竟也來了鱼填?” 一聲冷哼從身側(cè)響起苹丸,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扇单,失蹤者是張志新(化名)和其女友劉穎施流,沒想到半個月后瞪醋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡顶霞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吐限。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鲜侥。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖诸典,靈堂內(nèi)的尸體忽然破棺而出描函,到底是詐尸還是另有隱情,我是刑警寧澤狐粱,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布舀寓,位于F島的核電站,受9級特大地震影響肌蜻,放射性物質(zhì)發(fā)生泄漏互墓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一蒋搜、第九天 我趴在偏房一處隱蔽的房頂上張望篡撵。 院中可真熱鬧判莉,春花似錦、人聲如沸育谬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膛檀。三九已至锰镀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咖刃,已是汗流浹背泳炉。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留嚎杨,地道東北人花鹅。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像磕潮,于是被迫代替她去往敵國和親翠胰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 這篇文章在介紹官網(wǎng)的同時使用了比較多的腳本示例自脯,示例里遇到的問題有部分在本篇文章進(jìn)行了解釋之景,還有一篇文章專門記錄了...
    顧顧314閱讀 12,927評論 3 32
  • 本文是我接觸爬蟲以來,第三套爬蟲的代碼記錄博客膏潮。本文主要是記錄淘寶搜索美食的頁面信息锻狗,工具是selenium 和 ...
    小白猿閱讀 1,067評論 1 9
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,981評論 3 119
  • 是誰在遠(yuǎn)方呼喊 是誰丟棄了昨天 是誰不敢再愛了 是誰變得沒了模樣 昨夜的星光美好 今晨的陽光照在臉龐 閉上眼睛深吸...
    皆非_lx閱讀 154評論 0 4