Python爬取TripAdvisor

直接上代码:

#爬取tripadvisor纽约市酒店超值排名

#引入requests 获取html文件,才能从html获取信息
import requests
#利用BeautifulSoup解析文件,获取想要的到的数据
from bs4 import BeautifulSoup
#这段代码只用在获取等待,避免频繁访问ip被封禁
import time

#url = 'https://www.tripadvisor.cn/Hotels-g60763-oa30-New_York_City_New_York-Hotels.html'
#获取全部的url。每一页的url不同
urls = ['https://www.tripadvisor.cn/Hotels-g60763-oa{}-New_York_City_New_York-Hotels.html'.format(str(i)) for i in range(0,720,30)]
#利用headers假装是浏览器,可以在网页检查,NetWork里面找
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}

#定义函数找到所需要的信息
def get_hotel(url):
#每次调用等待两秒
time.sleep(2)
#利用requests请求的到html
resp = requests.get(url)
#利用BeautifulSoup解析,利用率lxml解析库
soup = BeautifulSoup(resp.text,'lxml')

#css选选择器选择所需要的信息,包括标题,价格,和排名
#imgs = soup.select('div.aspect.is-hidden-tablet > div.inner')
titles = soup.select('div.listing_title > a[target="_blank"]')
paimings = soup.select('div.popindex')
prices = soup.select('div.xwrap')

#存储在一个字典里面
for title,paiming,price in zip(titles,paimings,prices):
    data = {
        'title':title.get_text(),
        'paiming':paiming.get_text(),
        'price':price.get_text(),
    }
    print(data)

#对每一个页面都爬取,
for url in urls:
get_hotel(url)

运行结果:
这里写图片描述

爬取内容太粗糙,但可以给初学者看看;

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值