电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:3日期: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 編程
相關文章:
主站蜘蛛池模板: 节流截止放空阀-不锈钢阀门-气动|电动截止阀-鸿华阀门有限公司 | pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司 | 硫化罐-电加热蒸汽硫化罐生产厂家-山东鑫泰鑫智能装备有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 大流量卧式砂磨机_强力分散机_双行星双动力混合机_同心双轴搅拌机-莱州市龙跃化工机械有限公司 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 天助网 - 中小企业全网推广平台_生态整合营销知名服务商_天助网采购优选 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 婚博会2024时间表_婚博会门票领取_婚博会地址-婚博会官网 | 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 | 护腰带生产厂家_磁石_医用_热压护腰_登山护膝_背姿矫正带_保健护具_医疗护具-衡水港盛 | 北京西风东韵品牌与包装设计公司,创造视觉销售力! | 微型气泵-真空-蠕动-水泵-厂家-深圳市品亚科技有限公司 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 地图标注|微信高德百度地图标注|地图标记-做地图[ZuoMap.com] | 学生作文网_中小学生作文大全与写作指导| 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 钢结构-钢结构厂房-钢结构工程[江苏海逵钢构厂] | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司 | 工作服定制,工作服定做,工作服厂家-卡珀职业服装(苏州)有限公司 | 软文发布-新闻发布推广平台-代写文章-网络广告营销-自助发稿公司媒介星 | 2025黄道吉日查询、吉时查询、老黄历查询平台- 黄道吉日查询网 | 电动葫芦|手拉葫芦|环链电动葫芦|微型电动葫芦-北京市凌鹰起重机械有限公司 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 暴风影音 | 新能源汽车电机定转子合装机 - 电机维修设备 - 睿望达 | 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 管形母线,全绝缘铜管母线厂家-山东佰特电气科技有限公司 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 5nd音乐网|最新流行歌曲|MP3歌曲免费下载|好听的歌|音乐下载 免费听mp3音乐 | 挨踢网-大家的导航!| 超声波清洗机-超声波清洗设备定制生产厂家 - 深圳市冠博科技实业有限公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | 阻垢剂,反渗透阻垢剂,缓蚀阻垢剂-山东普尼奥水处理科技有限公司 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 青岛成人高考_山东成考报名网 |