python爬取景点信息_Python用Pyspider爬取TripAdvisor的景点信息

先上效果图

3309722444.png

1101859553.png

1130911270.png

1199743925.png

上代码:from pyspider.libs.base_handler import *

import pymongo

class Handler(BaseHandler):

crawl_config = {

}

client = pymongo.MongoClient('localhost')

db = client['TripAdvise']

@every(minutes=24 * 60)

def on_start(self):

self.crawl('https://www.tripadvisor.cn/Attractions-g186338-Activities-c47-London_England.html',callback=self.index_page, validate_cert=False)

@config(age=10 * 24 * 60 * 60)

def index_page(self, response):

for each in response.doc('div.listing_title > a').items():

self.crawl(each.attr.href, callback=self.detail_page, validate_cert=False)

# 翻页

next = response.doc('.pagination .nav.next').attr.href

self.crawl(next, callback=self.index_page, validate_cert=False)

@config(priority=2)

def detail_page(self, response):

url = response.url

name = response.doc('.h1').text()

rating = response.doc(' div.ratingContainer > a > span').text()

garde = response.doc('div.section.rating > span').text()

address = response.doc('.contactInfo > .address').text()

phone = response.doc('div.contact > div.contactType.phone.is-hidden-mobile > div').text()

opening = response.doc('div.prw_rup.prw_common_atf_header_bl_responsive.headerBL > div > span').text()

introduction = response.doc('.centerWell > div > div > div > div > div > span').text()

return {

"url": url,

"name": name,

"rating": rating,

'garde': garde,

"address": address,

"phone": phone,

"opening": opening,

"introduction": introduction

}

def on_result(self, result):

if result:

self.save_to_mongo(result)

def save_to_mongo(self, result):

if self.db['london'].insert(result):

print('保存到MongoDB成功', result)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值