这里我们用scrapy 框架爬取数据
爬虫文件里面的代码:
# -*- coding: utf-8 -*-
import json
import re
import os
import scrapy
from copy import deepcopy
from scrapy_redis.spiders import RedisSpider
class ItcastSpider(scrapy.Spider):
# 爬虫名称, 运行爬虫的时候需要用到, 必须唯一
name = 'Ctrip'
# 起始的URL列表, 爬虫从这些URL开始爬取
start_urls = ['http://you.ctrip.com/place/']
def parse(self, response):
#获取所有地区的url 和名字
url_list = response.xpath('//*[@id="journals-panel-items"]/dl[2]/dd/ul/li/a/@href').extract()
name_list = response.xpath('//*[@id="journals-panel-items"]/dl[2]/dd/ul/li/a/text()').extract()
i = 0
for url in url_list:
#国内每个地方的文件夹
os.makedirs('路径'+name_list[i])
yield scrapy.Request('http://you.ctrip.com' + url, callback=self.parse_data,meta={'text_name':deepcopy(name_list[i])})
i += 1
def parse_data(self,response):
os_name = response.meta['text_name']
url = response.xpath('/html/body/div[3]/div/div/ul/li[3]/a/@href').extract_first()