通过 chrome 浏览器 可以 copy 元素 到 notepad++ 中。
在 notepad++ 中,建立一个 空的 html文件。
可以在里面看 copy过来的 html 源码
copy完 之后的 效果是 一行很长 的字符串。
看看怎么 格式化一下 方便查看。
http://www.bejson.com/jshtml_format/
格式化 一下
from selenium import webdriver
import time
driver = webdriver.Firefox(executable_path = r'C:\ProgramData\Anaconda3\Scripts\geckodriver.exe')
# 把上述地址改成你电脑中geckodriver.exe程序的地址
# 在虚拟浏览器中打开 Airbnb 页面
driver.get("https://zh.airbnb.com/s/Shenzhen--China/homes")
# 找到页面中所有的出租房
#driver.switch_to.frame(driver.find_element_by_css_selector("iframe[title='livere']"))
rent_list = driver.find_elements_by_css_selector('div._gig1e7')
# 对于每一个出租房
for eachhouse in rent_list:
# 找到评论数量
try:
comment = eachhouse.find_element_by_css_selector('span._1clmxfj')
comment = comment.text
except:
comment = 0
print ('error')
# 找到价格
price = eachhouse.find_element_by_css_selector('div._1ixtnfc')
price = price.text.replace("每晚", "").replace("价格", "").replace("\n", "")
# 找到名称
name = eachhouse.find_element_by_css_selector('div._1revvmz')
name = name.text
# 找到房屋类型,大小
details = eachhouse.find_element_by_css_selector('span._fk7kh10')
details = details.text
house_type = details.split(" · ")[0]
bed_number = details.split(" · ")[1]
print(price, ' : ', name, ' : ', house_type, ' : ', bed_number, ' : ', comment)
print('-----------------------\n')
结果:
C:\ProgramData\Anaconda3\python.exe E:/python/work/ana_test/test.py
¥398 : [Misa’s house] ‘想‘老街地铁口/kkmall万象城罗湖口岸/ins风商务房/直达香港 : 整套公寓 : 1室1卫2床 : 4.8分 · 75条评论
-----------------------
¥298 : 【宫遇】17-KKmall楼上一房一厅--【Loft时代】 : 整套公寓 : 1室1卫1床 : 4.9分 · 223条评论
-----------------------
¥298 : 【十二微邸】14J-KKmall楼上的城市微魔方 : 整套公寓 : 1室1.5卫1床 : 4.8分 · 228条评论
-----------------------
¥152 : 深圳北站 大床房 直达香港口岸/出差首选 1.8米超大床房 温馨舒适北欧风公寓 : 独立房间 : 1室2卫1床 : 4.9分 · 235条评论
-----------------------
¥389 : LADYMA |原宿 摩洛哥风格 福田CBD会展中心#家庭影院CocoPark福田皇岗口岸岗厦地铁口 : 整套公寓 : 1室1卫1床 : 4.6分 · 131条评论
-----------------------
¥300 : (云意)罗湖阅见·生活美学公寓城景大床房近地王大厦万象城KKMALL大剧院D出口 : 整套公寓 : 1室1卫1床 : 4.7分 · 194条评论
-----------------------
¥265 : [Studio Q-Cozy]KKmall楼上/大剧院站/京基100/Luohu/深圳罗湖 : 整套公寓 : 单间1卫1床 : 4.7分 · 55条评论
-----------------------
¥298 : 【十二微邸】32Q-KKmall楼上的天空微城堡 : 整套公寓 : 1室1卫1床 : 4.9分 · 222条评论
-----------------------
¥318 : 【克洛偌斯】万象城 | kkmall | 老街美食中心 | 罗湖口岸 | 巨幕投影 | 北欧公寓 : 整套公寓 : 1室1卫1床 : 4.8分 · 96条评论
-----------------------
¥339 : 【猫薄荷】近福田中心区|美食街道|loft公寓|巨幕投影|泡泡吊椅 : 整间LOFT : 1室1卫1床 : 4.8分 · 144条评论
-----------------------
¥219 : 水贝珠宝园7号线地铁出口高端居家公寓 : 整套酒店式公寓 : 1室1卫1床 : 4.4分 · 75条评论
-----------------------
¥395 : 【GAO's Home】福田中心区设施齐备的品质温馨小家(近市中心、会展中心、福田口岸) : 整套公寓 : 1室1卫1床 : 4.9分 · 188条评论
-----------------------
¥320 : #寒舍Room4#福田下沙地铁口高层景观公寓,森林极简风,交通便利,私人房间,拍摄请另咨询 : 独立房间 : 1室1卫1床 : 4.8分 · 190条评论
-----------------------
¥201 : 暖空调 马赛克浴缸 溜达家英式 一房里的精致生活 整租 3号线地铁口 龙岗中心城大运中心万科广场 : 整套公寓 : 1室1卫1床 : 4.8分 · 128条评论
-----------------------
¥335 : 福田CBD/会展中心/莲花山/近福田口岸/皇岗口岸/地铁9号线孖岭地铁口/温馨一房一厅 : 小屋 : 1室1卫1床 : 5.0分 · 85条评论
-----------------------
¥178 : Loire花房公寓 : 合住房间 : 1室1卫1床 : 4.5分 · 115条评论
-----------------------
¥148 : 浪漫的气球帘榻榻米,全景落地玻璃阳光房 : 独立房间 : 1室1.5卫1床 : 5.0分 · 53条评论
-----------------------
¥338 : 【白日梦蓝】美食街|loft|罗湖口岸|双地铁|巨幕影院 | 游泳池1-3人公寓 : 整套公寓 : 1室1卫1床 : 4.6分 · 159条评论
-----------------------
Process finished with exit code 0
有一个问题:
为啥 这里 不需要:
#driver.switch_to.frame(driver.find_element_by_css_selector(“iframe[title=‘livere’]”))
多页面看看
代码如下:
from selenium import webdriver
import time
driver = webdriver.Firefox(executable_path = r'C:\ProgramData\Anaconda3\Scripts\geckodriver.exe')
# 把上述地址改成你电脑中geckodriver.exe程序的地址
# 在虚拟浏览器中打开 Airbnb 页面
for i in range(0, 5):
#driver.get("https://zh.airbnb.com/s/Shenzhen--China/homes")
link = "https://zh.airbnb.com/s/Shenzhen--China/homes?items_offset=" + str(i * 18)
driver.get(link)
# 找到页面中所有的出租房
#driver.switch_to.frame(driver.find_element_by_css_selector("iframe[title='livere']"))
rent_list = driver.find_elements_by_css_selector('div._gig1e7')
# 对于每一个出租房
for eachhouse in rent_list:
# 找到评论数量
try:
comment = eachhouse.find_element_by_css_selector('span._1clmxfj')
comment = comment.text
except:
comment = 0
print ('error')
# 找到价格
price = eachhouse.find_element_by_css_selector('div._1ixtnfc')
price = price.text.replace("每晚", "").replace("价格", "").replace("\n", "")
# 找到名称
name = eachhouse.find_element_by_css_selector('div._1revvmz')
name = name.text
# 找到房屋类型,大小
details = eachhouse.find_element_by_css_selector('span._fk7kh10')
details = details.text
house_type = details.split(" · ")[0]
bed_number = details.split(" · ")[1]
print(price, ' : ', name, ' : ', house_type, ' : ', bed_number, ' : ', comment)
print('-----------------------\n')
time.sleep(5)
加快加载速度
代码如下:
from selenium import webdriver
import time
fp = webdriver.FirefoxProfile()
fp.set_preference("permissions.default.stylesheet", 2)
fp.set_preference("permissions.default.image", 2)
fp.set_preference("javascript.enabled", False)
driver = webdriver.Firefox(firefox_profile=fp, executable_path = r'C:\ProgramData\Anaconda3\Scripts\geckodriver.exe')
# 把上述地址改成你电脑中geckodriver.exe程序的地址
# 在虚拟浏览器中打开 Airbnb 页面
for i in range(0, 5):
#driver.get("https://zh.airbnb.com/s/Shenzhen--China/homes")
link = "https://zh.airbnb.com/s/Shenzhen--China/homes?items_offset=" + str(i * 18)
driver.get(link)
# 找到页面中所有的出租房
#driver.switch_to.frame(driver.find_element_by_css_selector("iframe[title='livere']"))
rent_list = driver.find_elements_by_css_selector('div._gig1e7')
# 对于每一个出租房
for eachhouse in rent_list:
# 找到评论数量
try:
comment = eachhouse.find_element_by_css_selector('span._1clmxfj')
comment = comment.text
except:
comment = 0
print ('error')
# 找到价格
price = eachhouse.find_element_by_css_selector('div._1ixtnfc')
price = price.text.replace("每晚", "").replace("价格", "").replace("\n", "")
# 找到名称
name = eachhouse.find_element_by_css_selector('div._1revvmz')
name = name.text
# 找到房屋类型,大小
details = eachhouse.find_element_by_css_selector('span._fk7kh10')
details = details.text
house_type = details.split(" · ")[0]
bed_number = details.split(" · ")[1]
print(price, ' : ', name, ' : ', house_type, ' : ', bed_number, ' : ', comment)
print('-----------------------\n')
time.sleep(5)