Python大众点评店铺刷好评

声明:这个程序就是用来逗比的,不可也无法用于商业用途!其实是我之前写的用来哄妹纸的,妹纸在大众点评卖鸡爪,每天惦记着刷点五星的好评,作为菜鸟程序猿也要好好表现啊,于是写了下面这么个深井冰的程序,妹纸开心一笑,我也就开心啦。哈哈,不过你们猜不到结局,妹纸非但不开心,还把我抓过去揍了好几顿。

因为大众点评有检测恶意刷好评的程序,所以这些好评的存在周期也就一天不到,拿来练手还是可以的。

说说我的想法:

1. 首先注册一个马甲号,使用QQ号就能注册,而且还不需要验证,So easy,抓包就能实现,不过注册的时候需要验证码,本人能力有限,把验证码下载到本地手动输入的。

2. 为了让这个马甲看起来不那么马甲,我决定完善一下马甲的资料,比如起个名字什么的,于是就需要注册成功后输入下马甲的名字,不过名字有可能已存在,还是想个不容易重复的名字吧。

3. 我还打算以后用这些小号,以后把他们级数升上去,变成带钻的,大众点评就不会删我的好评了,于是我打算把这些小号的其他资料完善一下,还是抓包实现。

4. 妹纸说,虽然你的马甲都有自己个性的名字了,不过你这马甲没有头像啊,看起来还是假假的,差评。我尝试了下,给马甲提交头像,失败告终,无颜见妹纸。

5. 最后就是找到店铺的链接进行评价啦,我是一点也不谦虚,直接都是五星,然后口味服务都是五星,但是不能让所有的马甲评论内容都一样吧?所以评论还是手动输入的。每个马甲每个店铺只能提交一次评论,而且一旦被大众点评的检测恶意好评程序删除的话只能自己看到评论了,提交评论依旧是抓包。

6. 其实我还有其他想法,比如马甲号的登陆,登陆之后去评价别的店铺,这样我的马甲就能快速升级了,不过尝试了注册那种把验证码下载到本地的方法,发现登陆不上啊,估计是时间戳的问题,好纠结,至今仍未解决。

还是直接上马吧:

1. 注册的时候把验证码存到本地

    #获取注册验证码,然后手动输入验证码
    def getcode(self):
        link = 'http://www.dianping.com/account/preg.jpg?xx=0'
        postdata={
                  'xx':'0'
                  }
        req1=urllib2.Request(
                            link,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Referer', 'http://www.dianping.com/account/preg.jpg?xx=0')
        req1.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
        #req1.add_header('Cache-Control', 'no-cache')
        #req1.add_header('Pragma', 'no-cache')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        content = urllib2.urlopen(req1).read()

        with open(u'验证码/1.jpg','wb') as code:
            code.write(content)

2. 手动输入QQ号进行注册,密码都是统一的

    #注册新用户,需要手动输入验证码,用户QQ号需要自动生成
    def registerMain(self,email,vcode):
        url1='http://www.dianping.com/ajax/json/account/reg'
        postdata={
                  'email':email,
                  'pass':'15244685623',
                  'vcode':vcode,
                  'city':'SH'
                  }
        req1=urllib2.Request(
                            url1,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Accept', 'application/json, text/javascript')
        req1.add_header('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8;')
        req1.add_header('Origin', 'http://www.dianping.com')
        req1.add_header('Referer', 'http://www.dianping.com/reg')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        req1.add_header('X-Request', 'JSON')
        req1.add_header('X-Requested-With', 'XMLHttpRequest')
        self.file1=urllib2.urlopen(req1).read()
        print self.file1

3.更改用户名

    #更改用户的基本信息,用户的名字需要手动输入,其他信息也可以做成手动输入的
    def updateUserInfo(self,name):
        url1='http://www.dianping.com/member/myinfo/setup/basic'
        postdata={
                  'userNickName':name.decode('gb2312','ignore').encode('utf-8'),
                  'userSex':'1',
                  'userCityName':'江苏省常州市武进区常武中路801号',
                  'userSign':'大家好,我是一个深井冰机器人,哈哈,欢迎关注',
                  'operation':'update',
                  'currentUserSign':'大家好,我是一个深井冰机器人,哈哈,欢迎关注'
                  }
        req1=urllib2.Request(
                            url1,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
        req1.add_header('Content-Type', 'application/x-www-form-urlencoded')
        req1.add_header('Origin', 'http://www.dianping.com')
        req1.add_header('Referer', 'http://www.dianping.com/member/myinfo/setup/basic')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        self.file1=urllib2.urlopen(req1).read()
        #print self.file1

4. 完善用户的详细信息

#更新用户的详细信息,其实就是用来赚积分的
    def userInfoDetails(self):
        url1='http://www.dianping.com/member/myinfo/setup/more'
        postdata={
                  'profileBean.bodilyform':'5',
                  'profileBean.loveStatus':'1',
                  'profileBean.birthYear':'1990',
                  'profileBean.birthMonth':'5',
                  'profileBean.birthDay':'21',
                  'profileBean.constellation':'双子座',
                  'profileBean.userQQ':'234423443',
                  'profileBean.isQQPublic':'false',
                  'profileBean.userMSN':'[email protected]',
                  'profileBean.isMsnPublic':'false',
                  'profileBean.job':'程序员',
                  'profileBean.university':'哈工大',
                  'profileBean.middleSchool':'长春二中',
                  'profileBean.personalUrl':'',
                  'profileBean.userHomePage':'http://blog.csdn.net/zhenyu5211314',
                  'profileBean.interest':'喜欢听歌,李志的《米店》,赵雷《南方姑娘》',
                  'profileBean.movie':'喜欢葫芦娃,生活大爆炸,喜欢大话西游和彩霞仙子',
                  'profileBean.music':'爱杰伦,爱发哥,五月天,SHE,魏如萱,啦啦啦',
                  'profileBean.book':'古龙,金庸的小说,看了不少,其实最喜欢的女主角还是黄蓉',
                  'profileBean.dish':'东北菜啦,常州菜也不错啊,其实我很好养活的',
                  'operation':'update',
                  'bodilyformType':'1',
                  'currentPermaLink':''
                  }
        req1=urllib2.Request(
                            url1,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
        req1.add_header('Content-Type', 'application/x-www-form-urlencoded')
        req1.add_header('Origin', 'http://www.dianping.com')
        req1.add_header('Referer', 'http://www.dianping.com/member/myinfo/setup/more')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        self.file1=urllib2.urlopen(req1).read()
        #print self.file1

5. 给店铺提交评论了

    #根据店铺的URL进行评论,目前为默认评论,后期加上读取文件获得网址,手输评论和打分
    def publishContent(self,content):
        contents = '''{"shopId":18362988,"shopType":10,"cityId":93,"star":{"title":"总体评价","value":50,"desc":"非常好"},"scoreList":[{"title":"口味","value":4,"desc":"非常好"},{"title":"环境","value":4,"desc":"非常好"},{"title":"服务","value":4,"desc":"非常好"}],"reviewBody":"''';
        contents += content.decode('gb2312','ignore').encode('utf-8')
        contents += '''","expenseInfoList":[{"title":"人均","value":"30","desc":"元"}],"extInfoList":[{"title":"喜欢的菜","values":["鸡爪","纯手工制作","烘焙"]},{"title":"餐厅特色","values":["可送外卖","休闲小憩","随便吃吃"]}]}''';
        url1='http://www.dianping.com/ajax/json/review/reviewAction'
        postdata={
                  'run':'a',
                  'mode':'pro',
                  'info':contents,
                  'reviewId':'-1',
                  'referPage':'http://www.dianping.com/shop/18362988/review',
                  'sina_sync':'2',
                  'qzone_sync':'2',
                  'sohu_sync':'2'
                  }
        req1=urllib2.Request(
                            url1,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Accept', 'application/json, */*')
        req1.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
        req1.add_header('Origin', 'http://www.dianping.com')
        req1.add_header('Referer', 'http://www.dianping.com/shop/18362988/review')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        req1.add_header('X-Request', 'JSON')
        req1.add_header('X-Requested-With', 'XMLHttpRequest')
        self.file1=urllib2.urlopen(req1).read()
        print self.file1

6. 更换头像,未完成

    #上传用户头像,头像数据有待分析,该功能还未完成
    def uploadImage(self):
        url='http://www.dianping.com/ajax/member/setup/userface/upload'
        post={
            'jump':'1c338e31d982c96ed1984a76408ea015'
            }
        req=urllib2.Request(
                            url,
                            urllib.urlencode(post)
                            )
        req.add_header('Accept', 'application/json, text/javascript')
        req.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
        req.add_header('Origin', 'http://www.dianping.com')
        req.add_header('Referer', 'http://www.dianping.com/member/myinfo/setup/userface')
        req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        req.add_header('X-Request', 'JSON')
        req.add_header('X-Requested-With', 'XMLHttpRequest')
        urllib2.urlopen(req).read()

        url1='http://www.dianping.com/member/myinfo/setup/userface'
        postdata={
                  'operation':'saveUserFace',
                  'ut':'01c0dece0a40163fde53bfa6acb143a8cd23862ce4d42a9010634c36b3c06e546cf6b4afd5bb689d886a03fe43bfb304adcb75a89cb36054000ef1f429302ee1',
                  'jump':'1c338e31d982c96ed1984a76408ea015'
                  }
        req1=urllib2.Request(
                            url1,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
        req1.add_header('Content-Type', 'application/x-www-form-urlencoded')
        req1.add_header('Origin', 'http://www.dianping.com')
        req1.add_header('Referer', 'http://www.dianping.com/member/myinfo/setup/userface')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        self.file1=urllib2.urlopen(req1).read()
        #print self.file1

基本功能就是这样了,总体代码如下:

#-*- coding:UTF-8 -*-
'''
======================================
此程序根据 http://www.oschina.net/code/snippet_148170_10661 内容改编
Adapted BY: zhenyu
Mail:[email protected]
======================================
'''
from sgmllib import SGMLParser
import os,sys,urllib2,urllib,cookielib,httplib
import datetime
import time

# 创建文件夹
path = os.getcwd()                       # 获取此脚本所在目录
new_path = os.path.join(path,u'验证码')
if not os.path.isdir(new_path):
    os.mkdir(new_path)

class spider(SGMLParser):
    def __init__(self,email,password):
        SGMLParser.__init__(self)
        self.email=email
        self.password=password
        try:
            cookie=cookielib.CookieJar()
            cookieProc=urllib2.HTTPCookieProcessor(cookie)
        except:
            raise
        else:
            opener=urllib2.build_opener(cookieProc)
            urllib2.install_opener(opener)    

    #获取注册验证码,然后手动输入验证码
    def getcode(self):
        link = 'http://www.dianping.com/account/preg.jpg?xx=0'
        postdata={
                  'xx':'0'
                  }
        req1=urllib2.Request(
                            link,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Referer', 'http://www.dianping.com/account/preg.jpg?xx=0')
        req1.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
        #req1.add_header('Cache-Control', 'no-cache')
        #req1.add_header('Pragma', 'no-cache')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        content = urllib2.urlopen(req1).read()

        with open(u'验证码/1.jpg','wb') as code:
            code.write(content)

    #注册新用户,需要手动输入验证码,用户QQ号需要自动生成
    def registerMain(self,email,vcode):
        url1='http://www.dianping.com/ajax/json/account/reg'
        postdata={
                  'email':email,
                  'pass':'15244685623',
                  'vcode':vcode,
                  'city':'SH'
                  }
        req1=urllib2.Request(
                            url1,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Accept', 'application/json, text/javascript')
        req1.add_header('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8;')
        req1.add_header('Origin', 'http://www.dianping.com')
        req1.add_header('Referer', 'http://www.dianping.com/reg')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        req1.add_header('X-Request', 'JSON')
        req1.add_header('X-Requested-With', 'XMLHttpRequest')
        self.file1=urllib2.urlopen(req1).read()
        print self.file1

    #根据店铺的URL进行评论,目前为默认评论,后期加上读取文件获得网址,手输评论和打分
    def publishContent(self,content):
        contents = '''{"shopId":18362988,"shopType":10,"cityId":93,"star":{"title":"总体评价","value":50,"desc":"非常好"},"scoreList":[{"title":"口味","value":4,"desc":"非常好"},{"title":"环境","value":4,"desc":"非常好"},{"title":"服务","value":4,"desc":"非常好"}],"reviewBody":"''';
        contents += content.decode('gb2312','ignore').encode('utf-8')
        contents += '''","expenseInfoList":[{"title":"人均","value":"30","desc":"元"}],"extInfoList":[{"title":"喜欢的菜","values":["鸡爪","纯手工制作","烘焙"]},{"title":"餐厅特色","values":["可送外卖","休闲小憩","随便吃吃"]}]}''';
        url1='http://www.dianping.com/ajax/json/review/reviewAction'
        postdata={
                  'run':'a',
                  'mode':'pro',
                  'info':contents,
                  'reviewId':'-1',
                  'referPage':'http://www.dianping.com/shop/18362988/review',
                  'sina_sync':'2',
                  'qzone_sync':'2',
                  'sohu_sync':'2'
                  }
        req1=urllib2.Request(
                            url1,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Accept', 'application/json, */*')
        req1.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
        req1.add_header('Origin', 'http://www.dianping.com')
        req1.add_header('Referer', 'http://www.dianping.com/shop/18362988/review')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        req1.add_header('X-Request', 'JSON')
        req1.add_header('X-Requested-With', 'XMLHttpRequest')
        self.file1=urllib2.urlopen(req1).read()
        print self.file1

    #更改用户的基本信息,用户的名字需要手动输入,其他信息也可以做成手动输入的
    def updateUserInfo(self,name):
        url1='http://www.dianping.com/member/myinfo/setup/basic'
        postdata={
                  'userNickName':name.decode('gb2312','ignore').encode('utf-8'),
                  'userSex':'1',
                  'userCityName':'江苏省常州市武进区常武中路801号',
                  'userSign':'大家好,我是一个深井冰机器人,哈哈,欢迎关注',
                  'operation':'update',
                  'currentUserSign':'大家好,我是一个深井冰机器人,哈哈,欢迎关注'
                  }
        req1=urllib2.Request(
                            url1,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
        req1.add_header('Content-Type', 'application/x-www-form-urlencoded')
        req1.add_header('Origin', 'http://www.dianping.com')
        req1.add_header('Referer', 'http://www.dianping.com/member/myinfo/setup/basic')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        self.file1=urllib2.urlopen(req1).read()
        #print self.file1

    #更新用户的详细信息,其实就是用来赚积分的
    def userInfoDetails(self):
        url1='http://www.dianping.com/member/myinfo/setup/more'
        postdata={
                  'profileBean.bodilyform':'5',
                  'profileBean.loveStatus':'1',
                  'profileBean.birthYear':'1990',
                  'profileBean.birthMonth':'5',
                  'profileBean.birthDay':'21',
                  'profileBean.constellation':'双子座',
                  'profileBean.userQQ':'234423443',
                  'profileBean.isQQPublic':'false',
                  'profileBean.userMSN':'[email protected]',
                  'profileBean.isMsnPublic':'false',
                  'profileBean.job':'程序员',
                  'profileBean.university':'哈工大',
                  'profileBean.middleSchool':'长春二中',
                  'profileBean.personalUrl':'',
                  'profileBean.userHomePage':'http://blog.csdn.net/zhenyu5211314',
                  'profileBean.interest':'喜欢听歌,李志的《米店》,赵雷《南方姑娘》',
                  'profileBean.movie':'喜欢葫芦娃,生活大爆炸,喜欢大话西游和彩霞仙子',
                  'profileBean.music':'爱杰伦,爱发哥,五月天,SHE,魏如萱,啦啦啦',
                  'profileBean.book':'古龙,金庸的小说,看了不少,其实最喜欢的女主角还是黄蓉',
                  'profileBean.dish':'东北菜啦,常州菜也不错啊,其实我很好养活的',
                  'operation':'update',
                  'bodilyformType':'1',
                  'currentPermaLink':''
                  }
        req1=urllib2.Request(
                            url1,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
        req1.add_header('Content-Type', 'application/x-www-form-urlencoded')
        req1.add_header('Origin', 'http://www.dianping.com')
        req1.add_header('Referer', 'http://www.dianping.com/member/myinfo/setup/more')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        self.file1=urllib2.urlopen(req1).read()
        #print self.file1

    #上传用户头像,头像数据有待分析,该功能还未完成
    def uploadImage(self):
        url='http://www.dianping.com/ajax/member/setup/userface/upload'
        post={
            'jump':'1c338e31d982c96ed1984a76408ea015'
            }
        req=urllib2.Request(
                            url,
                            urllib.urlencode(post)
                            )
        req.add_header('Accept', 'application/json, text/javascript')
        req.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
        req.add_header('Origin', 'http://www.dianping.com')
        req.add_header('Referer', 'http://www.dianping.com/member/myinfo/setup/userface')
        req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        req.add_header('X-Request', 'JSON')
        req.add_header('X-Requested-With', 'XMLHttpRequest')
        urllib2.urlopen(req).read()

        url1='http://www.dianping.com/member/myinfo/setup/userface'
        postdata={
                  'operation':'saveUserFace',
                  'ut':'01c0dece0a40163fde53bfa6acb143a8cd23862ce4d42a9010634c36b3c06e546cf6b4afd5bb689d886a03fe43bfb304adcb75a89cb36054000ef1f429302ee1',
                  'jump':'1c338e31d982c96ed1984a76408ea015'
                  }
        req1=urllib2.Request(
                            url1,
                            urllib.urlencode(postdata)
                            )
        req1.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
        req1.add_header('Content-Type', 'application/x-www-form-urlencoded')
        req1.add_header('Origin', 'http://www.dianping.com')
        req1.add_header('Referer', 'http://www.dianping.com/member/myinfo/setup/userface')
        req1.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/3.0 Chrome/22.0.1229.79 Safari/537.1')
        self.file1=urllib2.urlopen(req1).read()
        #print self.file1

renrenspider=spider('[email protected]','15244685623')
#urlfile = open('canimei.txt')
while(1):
    renrenspider.getcode()
    email=raw_input('请输入注册QQ号码:')
    vcode=raw_input('请输入验证码:')
    email = email + '@qq.com'
    renrenspider.registerMain(email,vcode)
    name=raw_input('请输入默认用户名:')
    renrenspider.updateUserInfo(name)
    renrenspider.userInfoDetails()
    #renrenspider.uploadImage()
    content=raw_input('Please input content:')
    renrenspider.publishContent(content)

最后上点程序截图还有效果图吧,不过都是没删之前的,现在评论早就被删了:

没有啦,最后希望老大生意兴隆,哈哈,有空大家也去评论下:http://www.dianping.com/shop/18362988,小弟拜谢了

Python大众点评店铺刷好评

时间: 2024-11-07 13:06:31

Python大众点评店铺刷好评的相关文章

python爬虫实例详细介绍之爬取大众点评的数据

python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python能够帮助我们实现越来越多的功能.本文主要介绍如何利用python进行网站数据的抓取工作.我看到过利用c++和Java进行爬虫的代码,c++的代码很复杂,而且可读性.可理解性较低,不易上手,一般是那些高手用来写着玩加深对c++的理解的,这条路目前对我们不通.Java的可读性还可以,就是代码冗余比较多,

python爬取大众点评并写入mongodb数据库和redis数据库

抓取大众点评首页左侧信息,如图: 我们要实现把中文名字都存到mongodb,而每个链接存入redis数据库. 因为将数据存到mongodb时每一个信息都会有一个对应的id,那样就方便我们存入redis可以不出错. # -*- coding: utf-8 -*- import re from urllib.request import urlopen from urllib.request import Request from bs4 import BeautifulSoup from lxml

怎么干翻大众点评

要挑战甚至干翻大众点评,先要知道大众点评的优势或者根基是什么? 第一.海量的商户信息. 第二.累积多年的UGC点评内容. 第三.已经形成的忠实用户与移动/线下渠道(包括各城市入驻的销售团队等). ------------------------------ <第一 海量的商户信息累积> --------------------------------- Dp起源于上海,经过近十年的数据累积.目前上海地区至少餐饮商户的覆盖率已经非常高了.但全国范围内看,点评的模式决定了它前进会比较缓慢.杭州地区

抓取大众点评网站数据

使用PHP单线程抓取,速度比较慢,可以抓取所有的团购信息:店铺信息也可以抓取: 公司测试产品需要使用一些数据,所有试着抓取的,感觉就是写正则,不指定别人是怎么样的实现思路,感觉使用php多线程应该会速度更好吧. 我主要是抓评论跟一些图片,但是其他思路基本一样.按理来说,只要能显示出到网页上的,都可以抓下来. 我抓取的思路是第一步获取所有的city信息即test_get_city_info: 第二部通过city的url抓取每个city的每个类别的商品团购信息test_get_web_info 第三

对大众点评网会员制的一点分析

前言:会员制的初体验 前段时间搬家,无意中箱子翻倒,各种零碎东西撒了一地,一个红色的小书本特别醒目,封皮上写着<上海美食指南>,我不由自主的把它捡起来,脑子里却闪现出四个大字"大众点评"! 时光仿佛一瞬倒流回二零零五年.那时的我刚毕业没多久,揣着一颗有梦想的心来大上海闯荡.头几年收入偏低自然是囊中羞涩.但是开门七件事,柴米油盐酱醋茶,人不能不吃饭呀,尤其我还是个嘴叼的吃货?为了让每一分钱都用到刀刃上,工作之余就会利用互联网的便利去搜索,看看哪里有又好吃又便宜的馆子?然后发现

国内大公司的开源项目( 阿里 腾讯 百度 新浪 搜狐 豆瓣 大众点评)

阿里 阿里的开源项目很多,这也跟@淘宝正明的开源态度密不可分.有很多重量级的项目,例如LVS.Tengine,或者很有实践价值的中间件,例如 MetaQ(分布式消息系统).dubbo(RPC框架).cobar(数据库中间件),或者是Java世界的工具,例如druid.fastjson.都说国内Java公司的技术架构大部分来自阿里系,我觉得一方面来自阿里员工,一方面也可以来自阿里的开源项目. 地址有几个: https://github.com/alibaba 阿里的前端也挺活跃的,比较有名的就是s

android 粗暴简单仿美团/大众点评搜索方式,详细标注

转载请注明出处王亟亟的大牛之路 美团和大众点评的搜索和筛选栏,不能说好看(审美flag),但是满足了我们的搜索还筛选的需求,所以今天就实现了下这样的一个小Demo 项目结构:运行效果就是下图了,就不再截图了 初始化的样子: 具体实现就是起初3个LinearLayout,点击之后出现一个ListView然后会根据对这个LisvView的点击可能会再出现下一级别的子菜单. 废话不多说,直接上代码 MainActivity public class MainActivity extends Activ

Hawk: 20分钟无编程抓取大众点评17万数据

1. 主角出场:Hawk介绍 Hawk是沙漠之鹰开发的一款数据抓取和清洗工具,目前已经在Github开源.详细介绍可参考:http://www.cnblogs.com/buptzym/p/5454190.html,强烈建议先读这篇文章,该文介绍了详细原理和抓取链家二手房的攻略,以此为基础,才能较好的理解整个操作. 本文将讲解通过本软件,获取大众点评的所有美食数据,可选择任一城市,也可以很方便地修改成获取其他生活门类信息的爬虫. 本文将省略原理,一步步地介绍如何在20分钟内完成爬虫的设计,基本不需

海澜之家在大众点评上卖起了衣服 但真有人买吗

你会去经常点外卖和查评价的大众点评网买一件海澜之家的西服或者衬衣吗?海澜之家内部人士处获得的消息,在大众点评与海澜之家展开合作后,美团外卖即将成为服饰电商订单的主力配送者,海澜之家在大众点评上的订单也将由美团外卖前往海澜之家线下门店拿货,并在一小时内送到用户手上.这一业务即将在春节后上线. ? 打开大众点评APP搜索海澜之家,会出现海澜之家品牌馆及上线的53件商品,并提供附近店铺位置信息和评价.点击具体商品,弹出的只有"立即抢购",丝毫不留放入购物车的犹豫机会. 海澜之家品牌馆界面 界