本代碼主要實現抓取大眾點評網中關村附近的餐館有哪些,具體如下:
import urllib.request import re def fetchFood(url): # 模擬使用瀏覽器瀏覽大眾點評的方式瀏覽大眾點評 headers = {'User-Agent', 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'} opener = urllib.request.build_opener() opener.addheaders = [headers] data = opener.open(url).read() data = data.decode('utf') print('================================抓取的頁面數據=======================================') print(data) # 打印抓取的頁面 print('================================獲取的餐館信息====================================') foodNameSet = set(re.compile(r'<img title="(.*?)"', re.DOTALL).findall(data)) number = 0 for i in foodNameSet: number = number + 1 print("第%d個餐館: %s" % (number, i)) foodUrl = "http://www.dianping.com/search/category/2/10/r1488" fetchFood(foodUrl) 輸出結果:
"D:/ProgramFiles/python/python.exe"D:/zhangzh/program/MyGitHub/python3-webapp-demo/www/dzdp.py ================================抓取的頁面數據======================================= <!DOCTYPEhtml> <html> <head> <metacharset="UTF-8"/> <metahttp-equiv="X-UA-Compatible"content="IE=edge"/> <script>(function(n){vare;e="http://catdot.dianping.com/broker-service/api/js",n.onerror=function(n,o,r){vari=encodeURIComponent,t=+newDate();(newImage).src=e+"?error="+i(n)+"&file="+i(o)+"&line="+i(r)+"×tamp="+t}})(window);</script> <title>北京中關村美食-大眾點評網</title> ......此處省略 <liclass=""> <divclass="pic"> <atarget="_blank"href="/shop/33562041" rel="external nofollow" rel="external nofollow" rel="external nofollow" title=""> <imgtitle="渝是乎(中關村店)"alt="渝是乎(中關村店)"data-src="http://p0.meituan.net/ugcpic/023ff4be1a239be5b7f13ac328bc6c5d%40249w_249h_0e_1l%7Cwatermark%3D1%26%26r%3D1%26p%3D9%26x%3D2%26y%3D2%26relative%3D1%26o%3D20"/> </a> </div> <divclass="txt"> <divclass="tit"> <aonclick="document.hippo.ext({cl_i:10,query_id:'4ab097b5-d3b6-441b-a684-8b58c0704567'}).mv('cl_to_s',33562041); "data-hippo-type="shop"title="渝是乎(中關村店)"target="_blank"href="/shop/33562041" rel="external nofollow" rel="external nofollow" rel="external nofollow" > <h4>渝是乎(中關村店)</h4> </a> <divclass="promo-icon"> <atarget="_blank"href="/shop/33562041#waimai" rel="external nofollow" class="iout"title="本店支持在線下單,足不出戶,外送到家!"></a> </div> <atarget="_blank"href="/search/branch/2/0_33562041/g0" rel="external nofollow" module="list-branch" class="shop-branch">分店</a> </div> <divclass="comment"> <spanclass="sml-rank-starssml-str50"title="五星商戶"></span> <ahref="/shop/33562041#comment" rel="external nofollow" class="review-num"target="_blank"module="list-readreview" > <b>1536</b> 條點評</a> <emclass="sep">|</em> <ahref="/shop/33562041" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="mean-price"target="_blank"> 人均 <b>¥42</b> </span> </a> </div> <divclass="tag-addr"> <ahref="/search/category/2/10/g102" rel="external nofollow" ><spanclass="tag">川菜</span></a> <emclass="sep">|</em> <ahref="/search/category/2/0/r1488" rel="external nofollow" ><spanclass="tag">中關村</span></a> <spanclass="addr">榆樹林1號</span> </div> <spanclass="comment-list"> <span>口味<b>9.1</b></span> <span>環境<b>8.7</b></span> <span>服務<b>8.3</b></span> </span> </div> <divclass="svr-info"> ......此處省略 </script> </body></html> ================================獲取的餐館信息==================================== 第1個餐館:重八牛府(之初入江湖店) 第2個餐館:紐約客美式餐廳(新中關店) 第3個餐館:Chatuchak加都加曼谷潮流甜品 第4個餐館:新凈雅烹小鮮 第5個餐館:那家小館(中關村店) 第6個餐館:谷得一 第7個餐館:唐廊.樸禪(當代商城店) 第8個餐館:小福樓餐廳 第9個餐館:食寶街 第10個餐館:渝是乎(中關村店) 第11個餐館:品咖啡 第12個餐館:小吊梨湯(融科店) 第13個餐館:魚八斗老麻水煮魚(酸菜魚) 第14個餐館:鰻鰻的愛(新中關購物中心店) 第15個餐館:速度牛排 Processfinishedwithexitcode0
新聞熱點
疑難解答