日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python爬蟲實戰之用selenium爬取某旅游網站

瀏覽:63日期:2022-06-17 13:34:12
目錄一、selenium實戰二、打開藝龍網三、精確目標四、成功結語一、selenium實戰

這里我們只會用到很少的selenium語法,我這里就不補充別的用法了,以實戰為目的

二、打開藝龍網

可以直接點擊這里進入:藝龍網

這里是主頁

Python爬蟲實戰之用selenium爬取某旅游網站

三、精確目標

我們的目標是,鶴壁市,所以我們應該先點擊搜索框,然后把北京刪掉,替換成鶴壁市,那么怎么通過selenium實現呢?打開pycharm,新建一個叫做藝龍網的py文件,先導包:

from selenium import webdriver import time # 導包driver = webdriver.Chrome() # 創建一個selenium的對象driver.get('http://www.elong.com/') time.sleep(1) # 打開網站,并讓它睡1s,避免渲染未完成就進行下一步操作driver.maximize_window() # 將瀏覽器最大化

怎么找到搜索框呢,有很多方法,xpath,css,JavaScript,jQuery,,,因為xpath簡單,所以我們只使用xpath,因為這個網站也是可以用xpath的,具體步驟是:

1.F12,小箭頭,點擊搜索框

Python爬蟲實戰之用selenium爬取某旅游網站

2.點擊后,找到元素中的位置,右鍵,復制,復制xpath

Python爬蟲實戰之用selenium爬取某旅游網站

3.進入pycharm中,在之前創建的py文件中添加如下代碼

driver.find_element_by_xpath(’//*[@id='domesticDiv']/dl[1]/dd/input’).clear()# 將搜索框中的內容清理

4.在搜索框添加“鶴壁市”

driver.find_element_by_xpath(’//*[@id='domesticDiv']/dl[1]/dd/input’).send_keys(’鶴壁市’)

5.點擊搜索,進入下一頁

time.sleep(1)driver.find_element_by_xpath(’//*[@id='hotel_sub_tabs']/span[1]/b’).click() # 點擊無關time.sleep(1) # 避免渲染不及時導致報錯driver.find_element_by_xpath(’//*[@id='domesticDiv']/div/span[1]’).click() # 點擊搜索

6.下一頁此時我們絕望的發現,這些操作都是沒用的(對這個網站沒用,但是至少我們學到了點知識?)她還是北京

Python爬蟲實戰之用selenium爬取某旅游網站

所以我們只能這樣做了直接點擊搜索,進入這個頁面后再輸入鶴壁(那干嘛不直接訪問這個網頁呢?為了我這該死的儀式感!!)這樣做,再那樣做,就行了

from selenium import webdriverimport time # 導包driver = webdriver.Chrome() # 創建一個selenium的對象driver.get('http://www.elong.com/')time.sleep(1) # 打開網站,并讓它睡1s,避免渲染未完成就進行下一步操作driver.maximize_window() # 將瀏覽器最大化driver.find_element_by_xpath(’//*[@id='domesticDiv']/div/span[1]’).click() # 點擊搜索driver.find_element_by_xpath(’//*[@id='m_searchBox']/div[1]/label/input’).clear() # 清空搜索框內容driver.find_element_by_xpath(’//*[@id='m_searchBox']/div[1]/label/input’).send_keys(’鶴壁市’) # 在搜索框輸入 鶴壁市time.sleep(1)driver.find_element_by_xpath(’//*[@id='sugContent']/ul/li[1]/div/div[1]/div[1]/span/b’).click() # 鶴壁市time.sleep(1)# 只是改變了順序,并更換了xpath語法

然后就成功的定位到了鶴壁市

Python爬蟲實戰之用selenium爬取某旅游網站

8.分析網頁,找到詳情頁的url我們可以這樣做

Python爬蟲實戰之用selenium爬取某旅游網站

我們發現,這個詳情頁每個的xpath都不相同,怎么做到把所有詳情頁都“照顧”得到呢?看來只能請出我們的requests來了,然后我們發現,這個只是一段URL,那怎么辦?拼接咯!

9.通過查看響應,我們知道響應和元素是一樣的,那么說明什么?我們可以通過xpath提取到我們的元素,直接請出我們的xpath選手。

from lxml import etreeimport rehtml_data = driver.page_source # 將數據存入html_dataht = ht_ht.xpath(’//div[@class='to_detail']/a/@data-link’) # 提取到url的后半段

10.拼接字符串形成新URL

點進去一個詳情頁查看URL,發現是這樣的

Python爬蟲實戰之用selenium爬取某旅游網站

研究發現,將?issugtrace=2刪去也可以運行,而我們通過xpath取到的正是后面的 /31712004/,所以:

for ur in ht: new_ul = ’http://www.elong.com’ + ur

11.取到詳情頁URL后,就要點進去,然后再分析網頁,再提取數據,然后存數據,找xpath的我就先不說了,也不難。

head = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36’}for ur in ht: new_ul = ’http://www.elong.com’ + ur xiangqing_ht = requests.get(new_ul, headers=head).content.decode() # 使用requeststime.sleep(1) # 睡1s ht_data = etree.HTML(xiangqing_ht) # 轉為可使用xpath的HTML格式 tingche = ht_data.xpath(’//*[@id='hotelContent']/div/dl[4]/dd/text()’) # 停車位 if tingche == []:tingche = ’無停車位’ name = ht_data.xpath(’/html/body/div[3]/div/div[1]/div[1]/div/h1/text()’)[0] # 酒店名字 phine_num = ht_data.xpath(’//*[@id='hotelContent']/div/dl[1]/dd/span/text()’) # 電話 photo_li = ht_data.xpath(’/html/body/div[3]/div/div[2]/div[1]/div[2]/ul[1]/li/img/@src’) # 照片 weizhi = ht_data.xpath(’//*[@id='map']/div[1]/div[2]/div[1]/div/div[9]/div[2]/div/p[2]/text()’) # 位置 miaoshu = ht_data.xpath(’//*[@id='hotelContent']/div/dl[1]/dd/ul/li[2]/div/p/span[1]/text()’)

然后我們就拿到了數據,接下來,這些數據怎么保存呢?可以使用字典保存到json中。我就接著上面的寫了

dic = {} # 使用字典進行json存儲ic[f'{name}'] = {}dic[f'{name}'][f'{name}停車場'] = tingchedic[f'{name}'][f'{name}電話'] = phine_numdic[f'{name}'][f'{name}位置'] = weizhidic[f'{name}'][f'{name}描述'] = miaoshupath = f'酒店數據//{name}'if not os.path.exists(path): os.mkdir(path)# 創建酒店文件夾for num, photo in zip(range(len(photo_li)), photo_li): if num > 4:break else:with open(f’酒店數據//{name}//{name, num + 1}.jpg’, ’wb’) as f: f.write(requests.get(photo).content) # 將照片存進本地with open(f'酒店數據//{name}//酒店數據.json', ’w’) as f: f.write(str(dic)) # 將json存入文件dic = {} # 將字典內的數據清楚,留待下一次循環使用

12.數據拿到之后,還沒完,我們還要爬下一頁,首先需要把主頁滑倒最底部

for i in range(4): # 0 1 time.sleep(0.5) j = (i + 1) * 1000 # 1000 2000 js_ = f’document.documentElement.scrollTop={j}’ driver.execute_script(js_) time.sleep(5)

13.回到主頁面,找到下一頁的xpath,點擊

driver.find_element_by_xpath(’//*[@id='pageContainer']/a[9]’).click()

然后,我們就進入了 下一頁,然后下面就沒有代碼了,怎么辦,怎么讓代碼一直運行將很多頁的數據爬下來呢?有兩種方法:

封裝函數,并發爬取使用循環進行爬取

然后,就沒有然后了…

四、成功

成功拿到數據

Python爬蟲實戰之用selenium爬取某旅游網站

結語

希望大家能夠通過實戰了解各種語法的功能,而不是死記硬背各種語法,那樣你很容易忘記,其實很多學習都可以通過這種方式來學習

到此這篇關于Python爬蟲實戰之用selenium爬取某旅游網站的文章就介紹到這了,更多相關Python selenium爬取網站內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
7m精品国产导航在线| 精品视频91| 免播放器亚洲| 日韩精品久久久久久久软件91| 日韩不卡免费视频| 国产精品久久久久毛片大屁完整版| 精品美女久久| 蜜桃tv一区二区三区| 亚洲有吗中文字幕| 美腿丝袜亚洲一区| 久久精品国内一区二区三区水蜜桃| 国产91久久精品一区二区| 免费视频最近日韩| 欧美精品影院| 日韩欧美看国产| 综合一区av| 高清日韩中文字幕| 美女久久一区| 国产在线观看91一区二区三区| 91九色精品国产一区二区| 日韩高清不卡在线| 91精品xxx在线观看| 免费美女久久99| 精品一区二区三区的国产在线观看 | 国产成人精品一区二区三区视频 | 亚洲免费中文| 老牛国内精品亚洲成av人片| 亚洲大片在线| 国产欧美三级| 亚洲精品97| 精品国产一区二| 亚洲自啪免费| 麻豆mv在线观看| 亚洲欧洲av| 视频小说一区二区| 欧美日韩视频免费看| 欧美影院三区| 欧美一区二区三区久久精品| 亚洲小说欧美另类婷婷| 国产精品久久久久久久久久白浆 | 免费在线亚洲欧美| 亚洲深夜影院| 不卡专区在线| 日本欧美久久久久免费播放网| 秋霞影院一区二区三区| 国产精品一区二区三区av麻| 亚洲欧洲另类| 高清av一区| 国产日韩1区| 亚洲一区有码| 久久国产日本精品| 老鸭窝一区二区久久精品| 免费黄网站欧美| 日韩中文在线电影| 国产极品一区| 日韩影片在线观看| 亚洲精品888| 日韩在线观看| 精品国产18久久久久久二百| 日韩一区二区三区精品| 91久久久精品国产| 日本精品在线中文字幕| 国产精品高潮呻吟久久久久| 亚洲精品在线国产| 免费日韩av| 亚洲天堂久久| 日韩国产一区二区| 久久影视三级福利片| 国产福利一区二区三区在线播放| 麻豆成人综合网| 亚洲图片久久| 激情综合网址| 久久久久97| 日韩av网站在线免费观看| 国内精品99| 国产成人77亚洲精品www| 日韩和欧美的一区| 999国产精品999久久久久久| 久久xxx视频| 美国三级日本三级久久99| 日韩精品一卡| 精品一二三区| 欧美在线91| 免费在线观看成人| 亚洲精品一区二区妖精| 91日韩在线| 你懂的网址国产 欧美| 日韩国产欧美在线视频| 欧美午夜不卡影院在线观看完整版免费| 精品久久国产一区| 欧美日韩一区二区三区在线电影| 午夜亚洲一区| 久久中文亚洲字幕| 日韩中文在线电影| 黄毛片在线观看| 久久这里只有| 蜜桃精品视频| 91精品丝袜国产高跟在线| 美女国产精品| 91精品二区| 1024精品一区二区三区| 色一区二区三区四区| 麻豆一区二区三| 91成人小视频| 视频一区日韩| 免费在线观看日韩欧美| 91精品观看| 成人看片网站| 日产精品一区二区| 九九99久久精品在免费线bt| 国产欧美日韩在线一区二区| 日韩午夜视频在线| 亚洲毛片一区| 在线观看视频免费一区二区三区| 日韩视频久久| 亚洲视频www| 免费看的黄色欧美网站| 亚洲欧美视频| 在线视频免费在线观看一区二区| 欧美福利一区| 亚洲欧美日韩在线观看a三区| 亚洲一区二区成人| 91超碰国产精品| 午夜在线观看免费一区| 欧美在线资源| 亚洲色诱最新| 亚洲专区视频| 青草国产精品| 久久影视三级福利片| 麻豆91精品91久久久的内涵| 日韩一区二区三区免费| 黄色日韩在线| 欧美日韩亚洲一区三区| 国产第一亚洲| 99精品视频精品精品视频| 久久亚洲二区| 欧美精品国产| 精品一区二区三区四区五区| 激情欧美丁香| 中文字幕av一区二区三区人 | 精品国内亚洲2022精品成人| 播放一区二区| 亚洲免费福利一区| 国产一区二区三区亚洲综合| 欧美午夜不卡| 欧美黑人做爰爽爽爽| 亚洲一级二级| 国产欧美精品| 欧美亚洲国产精品久久| 欧美va天堂| 香蕉视频成人在线观看| 7777精品| 国产va在线视频| 欧美不卡在线| 日韩av一区二区三区| 麻豆精品视频在线观看| 精品日韩视频| 老司机精品久久| 欧美一区网站| 日韩国产专区| 蜜桃一区二区三区在线| 国产精品日本一区二区不卡视频| 麻豆国产精品| 免费国产自久久久久三四区久久 | 97精品国产| 红桃视频国产一区| 国产视频一区二| 欧美sm一区| 蜜桃av一区二区在线观看| 国产女人18毛片水真多18精品| 日韩一区电影| 综合一区二区三区| 国产在线日韩精品| 日韩精品一卡二卡三卡四卡无卡| 国产精品一区二区免费福利视频| 成人日韩在线| 亚洲欧洲美洲国产香蕉| 久草精品视频| 国产精品嫩草99av在线| 国产精品一区三区在线观看| 日韩在线第七页| 亚洲丝袜啪啪| 91精品韩国| 天堂精品久久久久| 日产午夜精品一线二线三线| 欧美中文日韩| 91亚洲国产| 深夜福利亚洲| 精品三级久久| 日韩在线网址| 亚洲精品88| 免费高清在线一区| 国产精品国产一区| 日韩午夜av| 久久99国产精品视频| 日本欧美在线看| 丰满少妇一区| 日韩 欧美一区二区三区| 91欧美日韩| 青青在线精品|