Python--蚂蜂窝游记爬取代码

  • 前言
  • 代码
  • 结果

前言

最近由于项目需求,研究了下爬虫,并写了爬取去哪儿、蚂蜂窝以及携程的景点与游记的代码。
这里献上蚂蜂窝的游记爬取代码,较为粗糙且不包含数据清理。
爬取的内容,包括每一篇游记的标题、出行日期、游玩天数、费用、人物等数据,如图红框:

最后,蚂蜂窝反爬很严格,最好多准备几个代理ip。(此代码为无代理ip的版本)
话不多说,上代码——

代码

// An highlighted block
# -*- coding:utf-8 -*-
import requests
import random
import time
import pandas as pd
from lxml import etreeUser_Agent = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36","Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1","Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"]HEADERS = {'User-Agent': User_Agent[random.randint(0, 5)],# 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3','Accept-Language': 'zh-CN,zh;q=0.9','Accept-Encoding': 'gzip, deflate',# 能力有限,不懂怎么解译JS来自动生成 cookie,只能复制张贴'Cookie': '',   # 请自行张贴上成功请求时的 cookie'Connection': 'keep-alive','Pragma': 'no-cache','Cache-Control': 'no-cache'
}# 从游记中获取数据
def get_data(u):print('Getting...')res_u = requests.get(u, headers=HEADERS, timeout=10).textres_u1 = etree.HTML(res_u)dic = {}n = random.randint(5, 10)dic['标题'] = res_u1.xpath('//h1[@class="headtext lh80"]/text()')dic['月份'] = res_u1.xpath('//ul/li[@class="time"]/text()[2]')dic['天数'] = res_u1.xpath('//ul/li[@class="day"]/text()[2]')dic['人物'] = res_u1.xpath('//ul/li[@class="people"]/text()[2]')dic['费用'] = res_u1.xpath('//ul/li[@class="cost"]/text()[2]')dic['URL'] = udata.append(dic)print(link + '__success')time.sleep(n)return data# 获取页面中每篇游记的链接
def get_links(res):res1 = etree.HTML(res)links = res1.xpath('//a[@class="title-link"]/@href')time.sleep(3)return linksdata = []
# 要爬取的页面数 (1, 末页-1)
for i in range(1, 69):print('Start_' + str(i))url = 'http://www.mafengwo.cn/yj/18341/1-0-{}.html'.format(i)print(url)print('-' * 20)# proxies = get_proxies()res = requests.get(url, headers=HEADERS).textlinks = get_links(res)for link in links:u = 'http://www.mafengwo.cn' + linkprint(u)data = get_data(u)print('success')n = random.randint(3, 8)time.sleep(n)df = pd.DataFrame(data)
print('=' * 20)
# 修改文件储存路径
df.to_csv('E:/MFW_notes_3.csv', mode='a', header=True, encoding='utf_8_sig')
print('All Finished')

结果

Python--蚂蜂窝游记爬取代码相关推荐

  1. python爬取蚂蜂窝帖子图片

    前言 最近在学习python网络爬虫,从爬取图片入手.周末爬取了一个图标网站.果壳.数字尾巴的帖子的图片,现在尝试爬取蚂蜂窝的帖子里的图片.爬取图片仅为个人练习,侵删. 代码框架 import url ...

  2. Python 爬取蚂蜂窝旅游攻略 (+Scrapy框架+MySQL)

    前言:使用python+scrapy框架爬取蚂蜂窝旅游攻略 Git代码地址:https://github.com/qijingpei/mafengwo 获取代理IP地址的开源项目ProxyPool-m ...

  3. python 携程_python爬取携程和蚂蜂窝的景点评论数据\python爬取携程评论数据\python旅游网站评论数...

    本人长期出售超大量微博数据.旅游网站评论数据,并提供各种指定数据爬取服务,Message to YuboonaZhang@Yahoo.com.同时欢迎加入社交媒体数据交流群:99918768 前言 为 ...

  4. Python爬虫实战——蚂蜂窝国内目的地全抓取

    上一篇文章爬的是豆瓣电影,是属于静态页面的,而且很有规律的,做起来比较容易.这次的蚂蜂窝国内目的主要有三点比较困难的地方 1.不是静态页面,要通过post请求才能获得需要的信息,通过刷新网页可以看到发 ...

  5. 爬取携程和蚂蜂窝的景点评论数据\携程评论数据爬取\旅游网站数据爬取

    本人长期出售超大量微博数据.旅游网站评论数据,并提供各种指定数据爬取服务,Message to YuboonaZhang@Yahoo.com.同时欢迎加入社交媒体数据交流群:99918768 前言   ...

  6. python的简单爬取代码之小白教程(微博热门标题)

    python的简单爬取代码之小白教程(微博热门标题) 一.请求网站响应获取网页源代码 1.观察微博搜索热搜榜 2.准备工作 3.上代码 二.利用正则定位到每个热搜 1.查看源码 2.使用正则直接定位 ...

  7. python登录网站后爬取数据_用 Python 登录主流网站,我们的数据爬取少不了它

    不论是自然语言处理还是计算机视觉,做机器学习算法总会存在数据不足的情况,而这个时候就需要我们用爬虫获取一些额外数据.这个项目介绍了如何用 Python 登录各大网站,并用简单的爬虫获取一些有用数据,目 ...

  8. 基于Python的网络爬虫爬取天气数据可视化分析

    目录 摘 要 1 一. 设计目的 2 二. 设计任务内容 3 三. 常用爬虫框架比较 3 四.网络爬虫程序总体设计 3 四. 网络爬虫程序详细设计 4 4.1设计环境和目标分析 4 4.2爬虫运行流程 ...

  9. python 爬虫实践 (爬取链家成交房源信息和价格)

    简单介绍 pi: 简单介绍下,我们需要用到的技术,python 版本是用的pyhon3,系统环境是linux,开发工具是vscode:工具包:request 爬取页面数据,然后redis 实现数据缓存 ...

最新文章

  1. 鸿蒙系统啥时候发布新手机,鸿蒙系统新手机面世还有多远?明年3月发布的华为P40可能搭载...
  2. 吴敏霞(为奥运冠军名字作诗)
  3. Windows远程桌面
  4. Unity3D 入门 游戏开发 Unity3D portal game development
  5. android-----JNI学习 helloworld
  6. python实现蜘蛛功能批量下载手机壁纸
  7. java 泰勒级数_鸡群优化算法(CSO)、蜻蜓算法(DA)、乌鸦搜索算法(CSA)、泰勒级数(Taylor series)...
  8. 华为android怎样隐藏软件,华为怎么打开隐藏应用功能
  9. twitter推文不收录_如何使用Twitter书签保存推文供以后使用
  10. linux检查nginx 状态,Nginx配置检测服务状态的实现方法,
  11. 【BZOJ1433】【codevs2347】假期的宿舍,最大流
  12. linux跟踪查看实时追加文件的结尾(常用于日志文件)
  13. 斯坦福大学CS143编译原理课程笔记:2.编译器结构
  14. oracle 没有debug权限,开启Oracle的debug级别日志
  15. 毕业设计!Python实现学生教师刷脸签到系统
  16. 大数据SQL如何实现笛卡尔积
  17. android自定义相机取景框模仿微信抓取录像实现活体认证
  18. 2017 多校4 Dirt Ratio
  19. Java基础——Arrays类的排序方法
  20. Gartner 魔力象限

热门文章

  1. Units are seconds since 1970.
  2. 手把手教你安装telnet(离线方式+在线方式)
  3. JSR296 为 annotation processing 安装 Eclipse : m2e-apt 插件
  4. facebook海外社交媒体广告平台的几种广告形式和类型
  5. 学习笔记(抽样技术)
  6. 行业分析| OA系统中的实时通讯
  7. 中国象棋软件-引擎实现(六)局面评估
  8. kioptrix1(mod_ssl版本漏洞提权)
  9. 苹果汽车将不支持全自动驾驶;华为云发布研发需求管理工具;腾讯文档发布企业版;OpenAI上线ChatGPT | 每日大事件...
  10. uni-app类似淘宝选择商品多规格(库存判断)