|
发表于 2017-10-23 22:59:10
|
显示全部楼层
一条一条我做不到了,分个块吧,爬虫其实一般可以分为3部分
1、准备部分,用来包装提交请求需要的东西,例如头部代码,代理,cookies之类的东西
2、获取解析部分,提交请求,解析页面。这部分一般由库requests,BeautifulSoup,re这些来完成,就是用来获取页面html的过程
3、提取保存部分。从html中抽取需要的内容,保存成文件或者导入数据库
- import requests
- import json
- # 准备部分
- head = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
- url_ = 'https://maps.googleapis.com/maps/api/place/search/json?language=en&key='
- result = []
- #url = url_ + key + "&radius=1000&location=" +str(lat) + ',' +str(lng) + '&types=' + types
- url = 'https://maps.googleapis.com/maps/api/place/search/json?language=en&key=AIzaSyDIplmP9mM7w7DVf3tHMpLngwA8uc9zl_M&radius=1000&location=1.3066,103.870339&types=accounting'
- # 请求获取
- while True:
- print(url)
- request = requests.get(url,timeout = 3,headers=head)
- request.encoding = 'utf8'
- if "error_message" in request.text:
- print('error')
- break
- # 提取保存
- res = json.loads(request.text)#
- result.extend(res['results'])
- print('处理开始')
- #如果多页则处理下页
- if res.get('next_page_token') != None:
- print(res.get('next_page_token'))
- url = url_ + 'AIzaSyDIplmP9mM7w7DVf3tHMpLngwA8uc9zl_M' + '&' + 'pagetoken=' + res.get('next_page_token')
- else:
- break
- #返回一个 list列表[latlng,result,types,number]
- print(len(result))
复制代码 |
|