import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
class QuNaEr():
def __init__(self, keyword, page=1):
self.keyword = keyword
self.page = page
def qne_spider(self):
url = 'https://piao.qunar.com/ticket/list.htm?keyword=%s®ion=&from=mpl_search_suggest&page=%s' % (self.keyword, self.page)
response = requests.get(url)
response.encoding = 'utf-8'
text = response.text
bs_obj = BeautifulSoup(text, 'html.parser')
arr = bs_obj.find('div', {'class': 'result_list'}).contents
for i in arr:
info = i.attrs
name = info.get('data-sight-name')
address = info.get('data-address')
count = info.get('data-sale-count')
point = info.get('data-point')
price = i.find('span', {'class':'sight_item_price'})
price = price.find_all('em')
price = price[0].text
conn = MongoClient('localhost', port=27017)
db = conn.QuNaEr
table = db.qunaer_51
table.insert_one({
'name' : name,
'address' : address,
'count' : int(count),
'point' : point,
'price' : float(price),
'city' : self.keyword
})
if __name__ == '__main__':
citys = ['北京', '上海', '成都', '三亚', '广州', '重庆', '深圳', '西安', '杭州', '厦门', '武汉', '大连', '苏州']
for i in citys:
for page in range(1,5):
qne = QuNaEr(i, page=page)
qne.qne_spider()