selenium自动化爬取携程酒店信息
重要提醒!!!!
携程反爬太强了,用自动化爬取,其他的数据都正确。唯独价格不正确!!!价格是携程随机生成的,不是正确的价格!
当前进度:
已完成搜索目的地,但无法解决携程需要登录才能查看酒店价格,即无法绕过登陆 想办法解决中 2021/2/5
还是无法绕过登陆,只能手动扫码登陆,并且在点击酒店详情后会跳出新的界面,要将driver定位到新的界面上,酒店详情还不能全部获取,后续要想办法将所有的酒店详情全部获取到 2021/2/16
可以获取各个酒店的详细信息,但是目前打开酒店的数量不确定,后面要解决打开酒店数量的问题。最重要的打开酒店的速度太慢了,打开一个酒店大概需要40多秒,也就是说如果爬取30个酒店,那么就需要近20分钟,效率太低,但爬的快了又会有被封ip的风险。 后面还要把代码分块处理,写到一块太乱了,不便于管理。还要把数据储存到mysql中,但这个我不会,要现学,可能会时间长一些。LOL代币才肝了1600个,太少了,至臻佐伊再不换下次就不知道啥时候了,熬夜淦!2021/2/17
解决了网页加载等待过长的问题 2021/2/17
家中有事,请假10天,果然在家学习效率太低了。
可以将爬下来的数据添加到mysql数据库中了,但是现在效率还是太低,而且有封ip的危险,所以还要解决一下。代码没有分块,接下来把代码分块,美观且方便管理,不会用scrapy,不然更方便。开学了,加油!2021/3/1
出现了奇奇怪怪的问题,不知道为啥,比如复制粘贴到新的py中就无法运行,显示AttributeError: ‘NoneType’ object has no attribute ‘send_keys’,只好自己重新将send_keys重新打一边,然后就可以运行了,还有其他奇奇怪怪的问题,我太难了,在bug中改代码。加入了数组,一次可以查一个省了2021/3/2
代码
# -*- coding = utf-8 -*-
# @Time : 2021/3/3 13:54
# @Author : DLT
# @File : xiecheng1.py
# @Software : PyCharmimport pymysql as pymysql
from selenium import webdriver
from time import sleep
import re
from selenium.webdriver import DesiredCapabilities
from selenium.webdrivermon.keys import Keys
if __name__ == '__main__':desired_capabilities = DesiredCapabilities.CHROMEdesired_capabilities["pageLoadStrategy"] = "none"driver = webdriver.Chrome(executable_path='chromedriver.exe') # 打开浏览器driver.get('/') # 打开网站sleep(3)# driver.refresh() #刷新浏览器'''进入携程主页'''#首先登陆'''需要手机扫码登陆,手动登录也可以,但是速度太慢'''sign_in = driver.find_element_by_class_name("set-text").click()sleep(13) # 8秒时间扫码sleep(1)#登陆成功后,页面跳转到搜索页面# hotel = driver.find_element_by_id("nav_hotel") # 寻找酒店搜索# hotel.click() # 点击# sleep(2)'''进入到酒店搜索页面之后'''hotel = driver.find_element_by_id("nav_hotel").click() # 寻找酒店搜索# 1、输入目的地province = "河南" # 省级citys= ["郑州", "开封", "洛阳", "平顶山", "安阳市", "鹤壁", "新乡", "焦作", "濮阳", "许昌", "漯河", "三门峡", "商丘", "周口", "驻马店", "南阳", "信阳"]countys = [["中原区", "二七区", "金水区", "惠济区", "管城区", "上街区", "巩义市", "新郑市", "登封市", "荥阳市", "新密市", "中牟县"],["龙亭区", "鼓楼区", "禹王台区", "顺河区", "祥符区",<
selenium自动化爬取携程酒店信息
重要提醒!!!!
携程反爬太强了,用自动化爬取,其他的数据都正确。唯独价格不正确!!!价格是携程随机生成的,不是正确的价格!
当前进度:
已完成搜索目的地,但无法解决携程需要登录才能查看酒店价格,即无法绕过登陆 想办法解决中 2021/2/5
还是无法绕过登陆,只能手动扫码登陆,并且在点击酒店详情后会跳出新的界面,要将driver定位到新的界面上,酒店详情还不能全部获取,后续要想办法将所有的酒店详情全部获取到 2021/2/16
可以获取各个酒店的详细信息,但是目前打开酒店的数量不确定,后面要解决打开酒店数量的问题。最重要的打开酒店的速度太慢了,打开一个酒店大概需要40多秒,也就是说如果爬取30个酒店,那么就需要近20分钟,效率太低,但爬的快了又会有被封ip的风险。 后面还要把代码分块处理,写到一块太乱了,不便于管理。还要把数据储存到mysql中,但这个我不会,要现学,可能会时间长一些。LOL代币才肝了1600个,太少了,至臻佐伊再不换下次就不知道啥时候了,熬夜淦!2021/2/17
解决了网页加载等待过长的问题 2021/2/17
家中有事,请假10天,果然在家学习效率太低了。
可以将爬下来的数据添加到mysql数据库中了,但是现在效率还是太低,而且有封ip的危险,所以还要解决一下。代码没有分块,接下来把代码分块,美观且方便管理,不会用scrapy,不然更方便。开学了,加油!2021/3/1
出现了奇奇怪怪的问题,不知道为啥,比如复制粘贴到新的py中就无法运行,显示AttributeError: ‘NoneType’ object has no attribute ‘send_keys’,只好自己重新将send_keys重新打一边,然后就可以运行了,还有其他奇奇怪怪的问题,我太难了,在bug中改代码。加入了数组,一次可以查一个省了2021/3/2
代码
# -*- coding = utf-8 -*-
# @Time : 2021/3/3 13:54
# @Author : DLT
# @File : xiecheng1.py
# @Software : PyCharmimport pymysql as pymysql
from selenium import webdriver
from time import sleep
import re
from selenium.webdriver import DesiredCapabilities
from selenium.webdrivermon.keys import Keys
if __name__ == '__main__':desired_capabilities = DesiredCapabilities.CHROMEdesired_capabilities["pageLoadStrategy"] = "none"driver = webdriver.Chrome(executable_path='chromedriver.exe') # 打开浏览器driver.get('/') # 打开网站sleep(3)# driver.refresh() #刷新浏览器'''进入携程主页'''#首先登陆'''需要手机扫码登陆,手动登录也可以,但是速度太慢'''sign_in = driver.find_element_by_class_name("set-text").click()sleep(13) # 8秒时间扫码sleep(1)#登陆成功后,页面跳转到搜索页面# hotel = driver.find_element_by_id("nav_hotel") # 寻找酒店搜索# hotel.click() # 点击# sleep(2)'''进入到酒店搜索页面之后'''hotel = driver.find_element_by_id("nav_hotel").click() # 寻找酒店搜索# 1、输入目的地province = "河南" # 省级citys= ["郑州", "开封", "洛阳", "平顶山", "安阳市", "鹤壁", "新乡", "焦作", "濮阳", "许昌", "漯河", "三门峡", "商丘", "周口", "驻马店", "南阳", "信阳"]countys = [["中原区", "二七区", "金水区", "惠济区", "管城区", "上街区", "巩义市", "新郑市", "登封市", "荥阳市", "新密市", "中牟县"],["龙亭区", "鼓楼区", "禹王台区", "顺河区", "祥符区",<
发布评论