上一篇文章爬的是豆瓣电影,是属于静态页面的,而且很有规律的,做起来比较容易。这次的蚂蜂窝国内目的主要有三点比较困难的地方
1.不是静态页面,要通过post请求才能获得需要的信息,通过刷新网页可以看到发送了什么请求,或者也可以用网络监听器
2.返回的响应是json形式的文件,不能直接用lxml去解析,要通过json模块来进行转化
3.缺失信息的情况比较多,需要多种判断
源码
#!/usr/bin/python
# -*- encoding:utf-8 -*-
"""
@author : kelvin
@file : mafengwo_scrapy
@time : 2017/2/21 7:50
@description : 爬蚂蜂窝热门旅游景点信息
"""
import requests
import json
import lxml.html
import csv
import sys
# 注意要先设置编译环境的默认编码形式为utf-8 , 不然会报unicodeerror
reload(sys)
sys.setdefaultencoding('utf-8')
# data = {
# "mddid": "21536",
# "page": str(1)
# }
# response = requests.post("http://www.mafengwo.cn/mdd/base/list/pagedata_citylist", data=data)
# print response.text
# 先创建一个csv文件,写好头部
with open("mafengwo_place.csv", '