暂没反爬,最简代码。
import requests,json from bs4 import BeautifulSoup import pandas keyword='%E5%81%A5%E8%BA%AB' keyword='酒店' aa=['''http://map.baidu.com/?newmap=1&reqflag=pcmap&biz=1&from=webmap&da_par=direct&pcevaname=pc4.1&qt=con&from=webmap&c=131&wd={}&wd2=&pn={}&nn=70&db=0&sug=0&addr=0&pl_data_type=life&pl_sub_type=%E5%81%A5%E8%BA%AB-&pl_price_section=0%2C%2B&pl_sort_type=data_type&pl_sort_rule=0&pl_discount2_section=0%2C%2B&pl_groupon_section=0%2C%2B&pl_cater_book_pc_section=0%2C%2B&pl_hotel_book_pc_section=0%2C%2B&pl_ticket_book_flag_section=0%2C%2B&pl_movie_book_section=0%2C%2B&pl_business_type=life&pl_business_id=&da_src=pcmappg.poi.page&on_gel=1&src=7&gr=3&l=10&tn=B_NORMAL_MAP&u_loc=12947364,4845057&ie=utf-8&b=(12944120,4766193;12995064,4922865)&t=1501815552268'''.format(keyword,i +1) for i in range(2103)] all_data=[] def url_parser(url): res = requests.get(url) soup = BeautifulSoup(res.text,'lxml') data = str(soup).lstrip('<html><body><p>').rstrip('</font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></font></p></body></html>') jdata = json.loads(data) for i in jdata['content']: fdata = { '名称':i['name'], '地址':i['addr'], } try: fdata['电话']=i['tel'] except Exception as e : fdata['电话'] = 0 all_data.append(fdata) for c in aa: url_parser(c) print(len(all_data)) df =pandas.DataFrame(all_data) df.to_excel('jianshen.xlsx',index=False)