Python--蚂蜂窝游记爬取代码
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--蚂蜂窝游记爬取代码相关推荐
- python爬取蚂蜂窝帖子图片
前言 最近在学习python网络爬虫,从爬取图片入手.周末爬取了一个图标网站.果壳.数字尾巴的帖子的图片,现在尝试爬取蚂蜂窝的帖子里的图片.爬取图片仅为个人练习,侵删. 代码框架 import url ...
- Python 爬取蚂蜂窝旅游攻略 (+Scrapy框架+MySQL)
前言:使用python+scrapy框架爬取蚂蜂窝旅游攻略 Git代码地址:https://github.com/qijingpei/mafengwo 获取代理IP地址的开源项目ProxyPool-m ...
- python 携程_python爬取携程和蚂蜂窝的景点评论数据\python爬取携程评论数据\python旅游网站评论数...
本人长期出售超大量微博数据.旅游网站评论数据,并提供各种指定数据爬取服务,Message to YuboonaZhang@Yahoo.com.同时欢迎加入社交媒体数据交流群:99918768 前言 为 ...
- Python爬虫实战——蚂蜂窝国内目的地全抓取
上一篇文章爬的是豆瓣电影,是属于静态页面的,而且很有规律的,做起来比较容易.这次的蚂蜂窝国内目的主要有三点比较困难的地方 1.不是静态页面,要通过post请求才能获得需要的信息,通过刷新网页可以看到发 ...
- 爬取携程和蚂蜂窝的景点评论数据\携程评论数据爬取\旅游网站数据爬取
本人长期出售超大量微博数据.旅游网站评论数据,并提供各种指定数据爬取服务,Message to YuboonaZhang@Yahoo.com.同时欢迎加入社交媒体数据交流群:99918768 前言 ...
- python的简单爬取代码之小白教程(微博热门标题)
python的简单爬取代码之小白教程(微博热门标题) 一.请求网站响应获取网页源代码 1.观察微博搜索热搜榜 2.准备工作 3.上代码 二.利用正则定位到每个热搜 1.查看源码 2.使用正则直接定位 ...
- python登录网站后爬取数据_用 Python 登录主流网站,我们的数据爬取少不了它
不论是自然语言处理还是计算机视觉,做机器学习算法总会存在数据不足的情况,而这个时候就需要我们用爬虫获取一些额外数据.这个项目介绍了如何用 Python 登录各大网站,并用简单的爬虫获取一些有用数据,目 ...
- 基于Python的网络爬虫爬取天气数据可视化分析
目录 摘 要 1 一. 设计目的 2 二. 设计任务内容 3 三. 常用爬虫框架比较 3 四.网络爬虫程序总体设计 3 四. 网络爬虫程序详细设计 4 4.1设计环境和目标分析 4 4.2爬虫运行流程 ...
- python 爬虫实践 (爬取链家成交房源信息和价格)
简单介绍 pi: 简单介绍下,我们需要用到的技术,python 版本是用的pyhon3,系统环境是linux,开发工具是vscode:工具包:request 爬取页面数据,然后redis 实现数据缓存 ...
最新文章
- 鸿蒙系统啥时候发布新手机,鸿蒙系统新手机面世还有多远?明年3月发布的华为P40可能搭载...
- 吴敏霞(为奥运冠军名字作诗)
- Windows远程桌面
- Unity3D 入门 游戏开发 Unity3D portal game development
- android-----JNI学习 helloworld
- python实现蜘蛛功能批量下载手机壁纸
- java 泰勒级数_鸡群优化算法(CSO)、蜻蜓算法(DA)、乌鸦搜索算法(CSA)、泰勒级数(Taylor series)...
- 华为android怎样隐藏软件,华为怎么打开隐藏应用功能
- twitter推文不收录_如何使用Twitter书签保存推文供以后使用
- linux检查nginx 状态,Nginx配置检测服务状态的实现方法,
- 【BZOJ1433】【codevs2347】假期的宿舍,最大流
- linux跟踪查看实时追加文件的结尾(常用于日志文件)
- 斯坦福大学CS143编译原理课程笔记:2.编译器结构
- oracle 没有debug权限,开启Oracle的debug级别日志
- 毕业设计!Python实现学生教师刷脸签到系统
- 大数据SQL如何实现笛卡尔积
- android自定义相机取景框模仿微信抓取录像实现活体认证
- 2017 多校4 Dirt Ratio
- Java基础——Arrays类的排序方法
- Gartner 魔力象限
热门文章
- Units are seconds since 1970.
- 手把手教你安装telnet(离线方式+在线方式)
- JSR296 为 annotation processing 安装 Eclipse : m2e-apt 插件
- facebook海外社交媒体广告平台的几种广告形式和类型
- 学习笔记(抽样技术)
- 行业分析| OA系统中的实时通讯
- 中国象棋软件-引擎实现(六)局面评估
- kioptrix1(mod_ssl版本漏洞提权)
- 苹果汽车将不支持全自动驾驶;华为云发布研发需求管理工具;腾讯文档发布企业版;OpenAI上线ChatGPT | 每日大事件...
- uni-app类似淘宝选择商品多规格(库存判断)