Python爬虫 - 获取美团美食数据

这两天接触了一下python爬虫,根据网上的一些博客写了下面的代码来抓取美团网上的美食数据,记录一下。


#from bs4 import BeautifulSoup #解析html或xml文件的库
import urllib.request
import csv
import re
import json


csv_file = open("rent.csv","w",encoding='utf-8') 
csv_writer = csv.writer(csv_file, delimiter=',')

class Spider:
	def loadPage(self,page):
		url = "http://gz.meituan.com/meishi/pn"+str(page)+"/"

		#user-Agent头
		user_agent="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT6.1; Trident/5.0"
		headers = {"User-Agent":user_agent}
		req = urllib.request.Request(url,headers = headers)
		response = urllib.request.urlopen(req)
		html =str(response.read(),'utf-8')

		
		#找到商家信息的内容为:{"poiId":xxx}
		#re.S 如果没有re.S,则是只匹配一行有没有符合规则的字符串,如果没有则匹配下一行重新匹配
		#如果加上re.S,则是将所有的字符串按一个整体进行匹配
		
		pattern = re.compile(r'{"poiId":.*?}',re.S)
		item_list = pattern.findall(html)#获取数据
			
		#dictinfo = json.loads(item_list[0])#把字符串转化为字典
		
		list = []#存放数据的数组
		
		for data in item_list:
				dictinfo = json.loads(data)
				csv_writer.writerow([dictinfo["title"],dictinfo["address"],dictinfo["avgScore"],dictinfo["avgPrice"]])
		
		

if __name__ == "__main__":
	mySpider = Spider()
	
	for i in range(1,33):
		print("fecth:Page"+str(i))
		mySpider.loadPage(i)
		
	csv_file.close()
	

 

你可能感兴趣的:(Python爬虫 - 获取美团美食数据)