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

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

Python爬蟲實戰(zhàn)之用selenium爬取某旅游網站

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

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

二、打開藝龍網

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

這里是主頁

Python爬蟲實戰(zhàn)之用selenium爬取某旅游網站

三、精確目標

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

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

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

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

Python爬蟲實戰(zhàn)之用selenium爬取某旅游網站

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

Python爬蟲實戰(zhàn)之用selenium爬取某旅游網站

3.進入pycharm中,在之前創(chuàng)建的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.下一頁此時我們絕望的發(fā)現(xiàn),這些操作都是沒用的(對這個網站沒用,但是至少我們學到了點知識?)她還是北京

Python爬蟲實戰(zhàn)之用selenium爬取某旅游網站

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

from selenium import webdriverimport time # 導包driver = webdriver.Chrome() # 創(chuàng)建一個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爬蟲實戰(zhàn)之用selenium爬取某旅游網站

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

Python爬蟲實戰(zhàn)之用selenium爬取某旅游網站

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

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

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

10.拼接字符串形成新URL

點進去一個詳情頁查看URL,發(fā)現(xiàn)是這樣的

Python爬蟲實戰(zhàn)之用selenium爬取某旅游網站

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

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

11.取到詳情頁URL后,就要點進去,然后再分析網頁,再提取數(shù)據(jù),然后存數(shù)據(jù),找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()’)

然后我們就拿到了數(shù)據(jù),接下來,這些數(shù)據(jù)怎么保存呢?可以使用字典保存到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'酒店數(shù)據(jù)//{name}'if not os.path.exists(path): os.mkdir(path)# 創(chuàng)建酒店文件夾for num, photo in zip(range(len(photo_li)), photo_li): if num > 4:break else:with open(f’酒店數(shù)據(jù)//{name}//{name, num + 1}.jpg’, ’wb’) as f: f.write(requests.get(photo).content) # 將照片存進本地with open(f'酒店數(shù)據(jù)//{name}//酒店數(shù)據(jù).json', ’w’) as f: f.write(str(dic)) # 將json存入文件dic = {} # 將字典內的數(shù)據(jù)清楚,留待下一次循環(huán)使用

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

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()

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

封裝函數(shù),并發(fā)爬取使用循環(huán)進行爬取

然后,就沒有然后了…

四、成功

成功拿到數(shù)據(jù)

Python爬蟲實戰(zhàn)之用selenium爬取某旅游網站

結語

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

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

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
美腿丝袜在线亚洲一区| 美女久久一区| 久久av资源| 亚洲精品女人| 日本91福利区| 欧美一区二区三区久久| 69堂免费精品视频在线播放| 欧美日韩亚洲一区在线观看| 国产欧美日本| 精品亚洲a∨| 一区二区三区四区日本视频| 日韩高清成人| 欧美日韩国产探花| 合欧美一区二区三区| 爽好多水快深点欧美视频| 水蜜桃久久夜色精品一区的特点| 日韩精品一二三四| 日韩一区二区三区免费视频 | 99视频精品全国免费| 激情欧美亚洲| 久久国产精品久久久久久电车| 美国三级日本三级久久99| 亚洲精品一区二区在线播放∴| 日本aⅴ亚洲精品中文乱码 | 久久精品三级| 日本久久成人网| 亚洲精品成人| 四虎精品永久免费| 精品福利久久久| 久久久久久久久99精品大| 首页亚洲欧美制服丝腿| 国产精品香蕉| a日韩av网址| 日韩精品一区第一页| 国产精品极品| 激情欧美国产欧美| 91欧美日韩在线| 精精国产xxxx视频在线野外| 在线免费观看亚洲| 国产在线视频欧美一区| 国产精品毛片在线| 国产精品久久国产愉拍| 91精品一区二区三区综合在线爱| 日av在线不卡| 精品国产中文字幕第一页| 激情综合自拍| 国产精品欧美大片| 激情婷婷综合| 国产日产精品_国产精品毛片| 成人日韩精品| 日本国产亚洲| 天堂资源在线亚洲| 国产亚洲字幕| 国模 一区 二区 三区| 日韩高清在线不卡| 亚洲成人精品| 69精品国产久热在线观看| 久久黄色影院| 国产欧美日韩一区二区三区四区| 九色porny丨国产首页在线| 亚洲精品大全| 日本韩国欧美超级黄在线观看| 亚洲日本免费电影| 日韩电影免费网址| 天堂俺去俺来也www久久婷婷| 国产网站在线| 日韩国产精品久久久久久亚洲| 久久久久.com| 国产精品久久久久久久久久久久久久久 | 国产激情综合| 国产日韩综合| 四虎成人av| 日本不卡视频在线| 国产字幕视频一区二区| 国产精品视频一区二区三区综合| 99国产精品视频免费观看一公开| 久久激情五月婷婷| 老鸭窝毛片一区二区三区| а√在线中文在线新版| 日韩精品福利一区二区三区| 欧美高清一区| 日韩av二区| 国产乱码精品一区二区三区亚洲人 | 91精品综合| 九九九精品视频| 日本成人中文字幕在线视频| 亚洲精品网址| 日韩免费视频| 美女精品视频在线| 日韩高清成人在线| 美国三级日本三级久久99 | 久久国产精品免费精品3p | 久久亚洲成人| 都市激情国产精品| 国产精品午夜一区二区三区| 亚洲美女久久| 免费精品视频| 久久精品不卡| 91精品婷婷色在线观看| 国产不卡人人| 美女国产精品久久久| 国产欧美日韩精品一区二区三区| 日本一不卡视频| 亚洲一区有码| 另类激情亚洲| 视频一区中文字幕国产| 欧美日韩视频| 精品日韩毛片| 欧美粗暴jizz性欧美20| 91精品蜜臀一区二区三区在线| 人人草在线视频| 成人亚洲欧美| 日产精品一区| 999国产精品永久免费视频app| 一区二区精品伦理...| 久久久久黄色| 久久影院一区二区三区| 国产亚洲电影| 久久爱www成人| 精品国产一区二区三区av片| 精品一区二区三区中文字幕视频| 国产精品亚洲成在人线| 国产精品成人自拍| 麻豆中文一区二区| 精品三级久久久| 日本欧美国产| 精精国产xxxx视频在线野外| 国产成人精品亚洲日本在线观看| 中文在线а√天堂| www成人在线视频| 欧美成a人免费观看久久| 欧美亚洲在线日韩| 在线看片不卡| 综合激情网站| 国产精品一区二区av日韩在线| 欧美黑人做爰爽爽爽| 高清一区二区三区| 亚洲不卡系列| 亚洲在线电影| 日韩国产欧美一区二区三区| 国产精品一区免费在线| 国产精品白丝一区二区三区| 精品一区91| 秋霞国产精品| 欧美在线资源| 鲁大师成人一区二区三区| 综合国产在线| 久久福利在线| 成人羞羞在线观看网站| 欧美搞黄网站| 综合亚洲视频| 麻豆一区二区在线| 日韩精品久久久久久久电影99爱| 91久久中文| 欧美一区久久| 久久久久久一区二区| 久久精品不卡| 免费在线观看一区二区三区| 88久久精品| 国产高潮在线| 国产亚洲一级| 国产精品久久久久久模特 | 日韩国产精品久久久久久亚洲| 国产精品视频一区二区三区四蜜臂| 四虎国产精品免费观看| 好吊日精品视频| 国产精品一站二站| 色天使综合视频| 亚洲区欧美区| 成人国产精品久久| 婷婷亚洲综合| 国产亚洲一卡2卡3卡4卡新区| а√天堂中文在线资源8| 国产模特精品视频久久久久| 国产精品玖玖玖在线资源| 91精品一区二区三区综合在线爱| 最近国产精品视频| 97精品国产| 亚洲三级观看| 日韩在线短视频| 欧美亚洲综合视频| 久久91导航| 亚州精品视频| 日本综合字幕| 日韩手机在线| 亚洲最新无码中文字幕久久| 亚洲伊人精品酒店| 亚洲啊v在线| 日韩高清欧美激情| 欧美特黄一级大片| 欧美1区2区3| 亚洲一区欧美二区| 久久99久久人婷婷精品综合| 狠狠爱www人成狠狠爱综合网| 国产欧美激情| 亚洲一区久久| 91日韩在线| 日韩超碰人人爽人人做人人添| 久久一区二区三区电影| 国产精品777777在线播放|