资源简介
内容:
根据已有的的"大众点评网"酒店主页的URL地址,自动抓取所需要的酒店的名称、图片、经纬度、酒店价格、用户评论数量以及用户评论的用户ID、用户名字、评分、评论时间等,并且将爬取成功的内容存放到.txt文档中。
平台:Python 3.5.3;Eclipse for Pydev
主程序:DianpingSpider.py
注意:设置了时间,模拟器等,较为有效地防止大众点评网的反爬虫结束检测到同一个IP访问频繁而屏蔽爬取,但是未能实现IP代理。
代码片段和文件信息
‘‘‘
程序名: DianPingSpider
功能: 根据已有的的“大众点评网“酒店主页的URL地址,自动抓取所需要的酒店的名称、图片、经纬度、酒店价格、用户评论数量以及用户评论的用户ID、用户名字、评分、评论时间
语言: python3.5.2
Created on 2016-10-30
@author: Lei Gaiceong
‘‘‘
import urllib.request
import re
import time
import picture #获取酒店图片
import urlspider #获取酒店的URL
import position
import os
import random
import PriceAndScores
# 统计所有酒店的评价信息,存入文本
def getRatingAll(fileIn):
count =0 # 计数,显示进度
websitenumber=0
for line in open(fileIn‘r‘): # 逐行读取并处理文件,即hotel的url
count=line.split(‘\t‘)[0]
line=line.split(‘\t‘)[1]
websitenumber+=1
print(“正在抓取第%s个网址的酒店信息“%(websitenumber))
try:
print(“正在抓取第%s家酒店的信息,网址为%s“%(countline.strip(‘\n‘)))
# 获取酒店编号
hotelid = line.strip(‘\n‘).split(‘/‘)[4]
#print(‘该酒店的hotelid是 : ‘ hotelid)
# 拼凑出该酒店第一页“评论页面“的url
url = line.strip(‘\n‘) + “/review_more“
#print(‘该酒店第一页“评论页面“的url是‘ url)
# 模拟浏览器打开url
headers = (‘User-Agent‘ ‘Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko‘)
opener = urllib.request.build_opener()
opener.addheaders = [headers]
data = opener.open(url).read()
#print(data) 当访问大众点评网过于次数频繁的时候,大众点评网的反爬虫技术会封锁本机的IP地址,此时data就会出现异常,无法打印正常的html
data = data.decode(‘utf-8‘ ‘ignore‘)
#print(data)
# 获取酒店用户评论数目
rate_number = re.compile(r‘全部点评\((.*?)\)‘ re.DOTALL).findall(data)
rate_number = int(‘‘.join(rate_number)) # 把列表转换为str,把可迭代列表里面的内容用‘ ’连接起来成为str,再进行类型转换
print(“第%d家酒店的评论数为%s“ % (websitenumber rate_number))
if(rate_number<100):#若酒店评论数目少于100条,则不跳过该酒店,不再挖取信息
continue
# 获取酒店名称和地址
opener1 = urllib.request.build_opener()
opener1.addheaders = [headers]
hotel_url =opener1.open(line).read()
hotel_data = hotel_url.decode(‘utf-8‘)#ignore是忽略其中有异常的编码,仅显示有效的编码
#print(hotel_data) #当访问大众点评网过于次数频繁的时候,大众点评网的反爬虫技术会封锁本机的IP地址,此时hotel_data就会出现异常,无法打印正常的html
# 获取酒店名称
shop_name=re.compile(u‘(.*?)
‘re.DOTALL).findall(hotel_data)
shop_name=str(‘‘.join(shop_name)) #类型转换
shop_name=shop_name.strip() #去掉字符串中的换行符
# 获取酒店地址
address=re.compile(u‘地址: (.*?)\n ‘re.DOTALL).findall(hotel_data)
address=str(‘‘.join(address))
#print(address)
# 获取酒店经纬度
poi=re.compile(r‘poi: \“(.*?)\“‘re.DOTALL).findall(hotel_data)
poi=str(‘‘.join(poi))
(longitudelatitude)=position.getPosition(poi)
print(“longitude:%s°Elatitude:%s°N“%(longitudelati
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-10-30 21:36 DianPingSpider\
文件 9368 2016-10-30 21:45 DianPingSpider\DianpingSpider.py
目录 0 2016-10-30 21:34 DianPingSpider\hotel\
目录 0 2016-10-30 21:34 DianPingSpider\image\
文件 1038 2016-10-10 14:36 DianPingSpider\picture.py
文件 1426 2016-10-30 20:50 DianPingSpider\position.py
文件 1080 2016-10-30 00:31 DianPingSpider\PriceAndScores.py
文件 1757 2016-10-30 21:00 DianPingSpider\urlspider.py
目录 0 2016-10-30 21:05 DianPingSpider\__pycache__\
文件 977 2016-10-10 14:36 DianPingSpider\__pycache__\picture.cpython-35.pyc
文件 1547 2016-10-30 20:54 DianPingSpider\__pycache__\position.cpython-35.pyc
文件 1081 2016-10-30 00:56 DianPingSpider\__pycache__\PriceAndScores.cpython-35.pyc
文件 388 2016-10-23 15:50 DianPingSpider\__pycache__\test.cpython-35.pyc
文件 1539 2016-10-22 14:59 DianPingSpider\__pycache__\urlspider.cpython-35.pyc
文件 5876 2016-10-23 15:50 DianPingSpider\__pycache__\__init__.cpython-35.pyc
相关资源
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- python3.5.2.chm官方文档
- python3.5.4_windows下32与64位安装包
- GitHack-python3.zip
- Python3.x+PyQtChart实现数据可视化界面
- python3根据模板图片批量自动制作个性
- 《机器学习实战》源代码Python3
- Python3.5.2的IDLE汉化版计算机等级考试
- python3.5 百度ai人脸识别
- python3实现的国密SM2+SM3
- python100道面试题及解答全部答案 pyc
- #python3.3关于Tk中的Treeview使用方法
- Python3.x+Pyqt5实现界面编程浏览网页
- 《机器学习实战》Python3代码
- Python3学习笔记
- Python3.7.2中文文档-标准库-通用操作系
- Python3.7.2中文文档-标准库-Python数据类
- python3基础教程第三版高清
- 随机森林python3实现代码(带数据集)
- dlib-19.18.0-cp37-cp37m-linux_armv7l.whl
- python3学习路线+思维导图
- Learn python3 the hard way
- 笨办法学python 3 第四版 英文
- python3爬虫
- Beginning Python: From Novice to Professional
- Python3实现KNN的三个包含数据集,水果
- python3中文帮助手册和英文帮助手册
- 基于协同过滤的电影推荐系统 python
- 廖雪峰Python3完整版PDF
评论
共有 条评论