大众点评页面抓取实例

#coding:utf-8

import re

from bs4 import BeautifulSoup as bs

with open('dianping.html','rb') as f:

html = f.read().decode()

dianping = bs(html,'lxml')

allshops = dianping.find_all('div', attrs={'class':'shop-list J_shop-list shop-all-list'})[0]

shops = allshops.find_all('li')

for eachshop in shops:

name = eachshop.h4.string

shopurl = eachshop.a["href"]

try:

star = re.findall('title="(.*)">',str(eachshop.find_all('span')[0]))[0]

except:

star = ''

try:

cls = re.findall('(.*?)',str(eachshop.find_all('span')))[0]

except:

cls = ''

try:

area = re.findall('(.*?)',str(eachshop.find_all('span')))[1]

except:

area = ''

try:

addr = re.findall('(.*?)',str(eachshop.find_all('span')))[0]

except:

addr = ''

try:

comments = re.findall('(.*?)',str(eachshop.find_all('b')[0]))[0]

except:

comments = ''

try:

mean = re.findall('(.*?)',str(eachshop.find_all('b')[1]))[0]

except:

mean = ''

try:

taste = re.findall('(.*?)',str(eachshop.find_all('b')[2]))[0]

except:

taste = ''

try:

envior = re.findall('(.*?)',str(eachshop.find_all('b')[3]))[0]

except:

envior = ''

try:

service = re.findall('(.*?)',str(eachshop.find_all('b')[4]))[0]

except:

service = ''

print (name,shopurl,star,cls,area,addr,mean,taste,envior,service,comments)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,646评论 1 118
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 10,053评论 0 23
  • 我喜欢你不知道算不算久。从高二到大二,跨越了高三的阴郁,大一的迷茫与独处时的孤单。现在我已经没有办法去判断,我是不...
    静静等风来yq阅读 243评论 0 0
  • 2016年已经过去两个月,你的年初计划执行的怎么样了? 如果因为没时间而执行不了,那我推荐一本书《哪有没时间这回事...
    曾木岩阅读 516评论 0 5