資源簡介
百度地圖商家信息爬蟲,通過python來進行商家信息抓取。
抓取商家信息:名稱,市,區,地址,電話,坐標(X,Y),圖片路徑,標簽,關鍵字

代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
“““
Spyder?Editor
This?is?a?temporary?script?file.
“““
import?re
import?time
import?requests
#定義方法
key_word=input(‘輸入關鍵字:‘)
print
City_Code=input(‘查詢的城市:‘)
print
print?(“爬蟲開始,現在抓取“City_Code‘的數據,抓取關鍵字:‘key_word)
#?def?__init__(?key_wordCity_Codepage):
#?url?=?‘http://api.map.baidu.com/direction/v1‘
f_path?=?‘E:\\project\\logo\\‘+City_Code+key_word+‘.xls‘
f_re?=?open(f_path?‘w‘)??#?用到open函數
f_re.write(‘名稱\t市\t區\t地址\t電話\t坐標(XY)\t圖片路徑\t標簽\t關鍵字\n‘)??#?標簽寫入
page=0
num=0
for??i?in?range(19999):
????num=page*10
????#?print(page)
????url?=?‘http://map.baidu.com‘
????parameter?=?{
????????????????“newmap“:?“1“
????????????????“reqflag“:?“pcmap“
????????????????“biz“:?“1“
????????????????“from“:?“webmap“
????????????????“da_par“:?“direct“
????????????????“pcevaname“:?“pc4.1“
????????????????“qt“:?“con“
????????????????“c“:?City_Code??#?城市代碼
????????????????“wd“:?key_word??#?搜索關鍵詞
????????????????“wd2“:?““
????????????????“pn“:?page??#?頁數
????????????????“nn“:?num
????????????????“db“:?“0“
????????????????“sug“:?“0“
????????????????“addr“:?“0“
????????????????“da_src“:?“pcmappg.poi.page“
????????????????“on_gel“:?“1“
????????????????“src“:?“7“
????????????????“gr“:?“3“
????????????????“l“:?“12“
????????????????“tn“:?“B_NORMAL_MAP“
????????????????#?“u_loc“:?“12621219.5365562630747.285024“
????????????????“ie“:?“utf-8“
????????????????#?“b“:?“(11845157.183047692.2;11922085.183073932.2)“??#這個應該是地理位置坐標,可以忽略
????????????????#?“b“:?“(22.7734420000113.7838330000?22.3906220000?114.3794460000])“
????????????????#?“t“:?“1468896652886“
????????????}
????url?=?‘http://map.baidu.com/‘
????try:
????????htm?=?requests.get(url?params=parameter)
????????htm?=?htm.text.encode(‘latin-1‘).decode(‘unicode_escape‘)??#?轉碼
????????#?pattern?=?r‘(?<=\baddress_norm“:“\[).+?(?=“ty“:)‘
????????#?print(htm)
????????pattern?=?r‘(?<=acc_flag“).+?(?=“view_type“:)‘
????????htm?=?re.findall(pattern?htm)??#?按段落匹配
????except?Exception?as?e:
????????#?print(“調用百度地圖錯誤“e)
????????continue
????if?htm:
????????try:
????????????for?r?in?htm:
????????????????#?print(r)
????????????????#?名稱
????????????????pattern?=?r‘(?<=“name“:“).+?(?=“)‘
????????????????name?=?re.findall(pattern?r)
????????????????#?print(name)
????????????????if?len(name):
????????????????????name=name[0]
????????????????else:name=‘-‘
????????????????#?print(‘名稱‘name)
????????????????#?地址
????????????????pattern?=?r‘(?<=“addr“:“).+?(?=“)‘
????????????????address?=?re.findall(pattern?r)??#?地址
????????????????if?len(address):?address?=?address[0]
????????????????else:?address=‘-‘
????????????????pattern?=?r‘(?<=“area_name“:“).+?(?=“)‘
????????????????#?區
????????????????area_name?=?re.findall(pattern?r)
????????????????if?len(area_name):area_name=area_name[0]
????????????????else:area_name=‘-‘
????????????????#?電話
????????????????pattern?=?r‘(?<=“phone“:“).+?(?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5356??2017-12-08?16:42??orgMapForBaidu.py
-----------?---------??----------?-----??----
?????????????????5356????????????????????1
評論
共有 條評論