python3.x爬取美团信息
在之前的文章中,笔者有提到,我们要在实践中去学习python,笔者有天就想着要不要爬点东西呢,跃跃欲试的节奏啊,想来想去,想到美团了,那么首先笔 者想给自己确定一个目标,就是我要爬什么样的数据,我要爬美团的哪些东西。笔者首先确定了笔者想要爬去的界 面,http://bj.meituan.com/。就是美团网在北京的团购首页,获取首页的团购,团购项目的介绍,团购售价,销量。
1.首先确定要用的模块,<1.>urrlib,os,re三个模块,
2.要想获得数据,并且一一对应起来,那么用到循环的嵌套(一开始卡壳,后来咨询得到启发),
3.获取网页的所有数据,爬去下来
4.分析这些想要或许的模块怎么找出来,
5.找出相对于的正则来匹配,
6.获取数据,并且找到对应的数值
7.利用循环,并且配合字典的使用,将数据完整的获取下来,
8.保存到相应的文档中
9.关闭文档,
10.提示数据保存成功,结束爬去。
由于这是第一次采取这么多的信息,之前只是爬个图片啥的,所以笔者还是十分小心的去审查每一个元素,在这里推荐利用火狐浏览器,感觉是真的好用使用Firebug插件审查元素。
查看元素后,可以获得这个网站的编码形式是utf-8,这对于我们爬取数据也是关键的。
在一开始呢,笔者还打开了一款软件,fiddler,抓包

这些信息还是很多的,由于笔者截图的时候碰到了网络的原因,但是笔者还是找到了自己想要的信息,这样可以在自己的代码中加入伪装浏览器的信息,那么接下来要做的事情就是定位我们想要找的数据。

分析首页的团购信息,我们可以根据多个来确认这个信息的唯一标识符,<span>标签中并且有class="xtitle"< /span>中间文字,那么我们的正则表达式就出来了,r'<span
class="xtitle">(.+?)</span>'(正则太难,笔者一个个试出来的)

描述也是<span>标签并且 class="short-title",</span>的文字,那么很快就匹配到了,正则出来了,r'class="short-title">(.+)</span>'
后面的就是依次类推。完成这个,那么我们就开始写我们的爬虫程序,导入我们想要用的模块,定义我们想要用的变量。爬去,匹配,然后循环得出来我们的结果,写入文档。代码如下
#作者:雷子
#qq:952943386
#邮箱:leileili126@163.com
#欢迎大家来点评,有问题可以进行沟通
import urllib.request
import os
import re
file=open(r'meituancde.txt','w')
url="http://bj.meituan.com/"
headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X
10.10; rv:47.0) Gecko/20100101 Firefox/47.0"}
req=urllib.request.Request(url,headers=headers)
response = urllib.request.urlopen(req)
html = response.read().decode("utf-8")
title_reg=r'<span
class="xtitle">(.+?)</span>' #匹配团购
jianjie_reg=r'class="short-title">(.+)</span>' #匹配团购简介
sellnum_reg=r'<strong class="num">(.+)</strong>' #销售的数量
pire_reg=r'<strong>(.+)</strong>' #团购的售价
title_list = re.findall(title_reg,html)
jianjie_list=re.findall(jianjie_reg,html)
sellnum_list=re.findall(sellnum_reg,html)
pire_list=re.findall(pire_reg,html)
meitu={}
i = 0
for title in title_list:
meitu['团购'] =title_list[i]
for jianjie in jianjie_list:
meitu['简介']=jianjie_list[i]
for sellum in sellnum_list:
meitu['销量']=sellnum_list[i]
for pire in
pire_list:
meitu['美团售价']=pire_list[i]
i+=1
print(meitu)
if len(meitu) !=0:
file.write(str(meitu))
file.write("\n")
file.close
print("写入正确")
代码 百度云
python3.x爬取美团信息的更多相关文章
- python3+beautifulsoup4爬取汽车信息
import requests from bs4 import BeautifulSoup response = requests.get("https://www.autohome.com ...
- Python 爬取美团酒店信息
事由:近期和朋友聊天,聊到黄山酒店事情,需要了解一下黄山的酒店情况,然后就想着用python 爬一些数据出来,做个参考 主要思路:通过查找,基本思路清晰,目标明确,仅仅爬取美团莫一地区的酒店信息,不过 ...
- python爬取“美团美食”汕头地区的所有店铺信息
一.目的 获取美团美食每个店铺所有的评论信息,并保存到数据库和本地 二.实现步骤 获取所有店铺的poiId 首先观察详情页的url,后面是跟着一串数字的,而这一串数字代表着每个店铺特有的id号,我们称 ...
- python3爬虫-爬取58同城上所有城市的租房信息
from fake_useragent import UserAgent from lxml import etree import requests, os import time, re, dat ...
- Python3从零开始爬取今日头条的新闻【二、首页热点新闻抓取】
Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...
- python爬取酒店信息练习
爬取酒店信息,首先知道要用到那些库.本次使用request库区获取网页,使用bs4来解析网页,使用selenium来进行模拟浏览. 本次要爬取的美团网的蚌埠酒店信息及其评价.爬取的网址为“http:/ ...
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...
- python学习之——爬取网页信息
爬取网页信息 说明:正则表达式有待学习,之后完善此功能 #encoding=utf-8 import urllib import re import os #获取网络数据到指定文件 def getHt ...
- Python3从零开始爬取今日头条的新闻【一、开发环境搭建】
Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...
随机推荐
- C++builder XE 安装控件 及输出路径
C++builder XE 安装控件 与cb6不一样了,和delphi可以共用一个包. 启动RAD Studio.打开包文件. Project>Options>Delphi Compile ...
- CST和GMT时间的区别
CST和GMT时间的区别 今天遇到一个奇怪的问题,在服务器端通过 c# 获取当前时间为 Fri Aug 28 09:37:46 CST 2009, 转化为 GMT时间为:28 Aug 2009 01: ...
- 杭电ACM减花布条
这是原题的地址 http://acm.hdu.edu.cn/showproblem.php?pid=2087 Problem Description 一块花布条,里面有些图案,另有一块直接可用的小饰条 ...
- hdu 5424 Rikka with Graph II (BestCoder Round #53 (div.2))(哈密顿通路判断)
http://acm.hdu.edu.cn/showproblem.php?pid=5424 哈密顿通路:联通的图,访问每个顶点的路径且只访问一次 n个点n条边 n个顶点有n - 1条边,最后一条边的 ...
- Leetcode226:Invert Binary Tree
Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 /** * Definition for a ...
- Qt Creator无法用“UTF-8”编码解码
在Qt Creator 里打开其他编辑器的代码时有时会提示: 无法用"UTF-8"编码解码 在文件上右键使用NotePad++编辑器打开: 选择->格式-&g ...
- Light oj 1100 - Again Array Queries (鸽巢原理+暴力)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1100 给你n个数,数的范围是1~1000,给你q个询问,每个询问问你l到r之间 ...
- UVaLive 6801 Sequence (计数DP)
题意:给定一个序列,有 n 个数,只有01,然后你进行k次操作,把所有的1变成0,求有多种方法. 析:DP是很明显的,dp[i][j] 表示进行第 i 次操作,剩下 j 个1,然后操作就两种,把1变成 ...
- HNC-全局联想脉络
全局联想脉络—语义块 和句类 一个语义块包含 核心部分 和说明部分. 语义块分为: 主语义块:有 4 种:特征E.作用者A.对象B.内容C 辅语义块:有 7 种:条件.手段.工具.途径.参照.因.果. ...
- react native 网络get请求方式参数不可为undefined或null
react native 网络get请求方式参数不可为undefined(为空的话默认变为)或null 错误写法: export function addToCartAction(isRefreshi ...