1. 程式人生 > >python爬取美團--鮮花商家資訊,設定代理池

python爬取美團--鮮花商家資訊,設定代理池

代理池設定:

這裡代理ip從快代理那獲取,新使用者有4小時免費測試時間。從http://dps.kdlapi.com/api/getdps/中獲取我們的ip代理池,根據使用者名稱密碼最後生成proxy_auth代理池。

proxy_auth = []

username = "####"
password = "####"

ips = requests.get('http://dps.kdlapi.com/api/getdps/?orderid=#####&num=30&pt=1&format=json&sep=1')

ips_arr = json.loads(ips.text)

for ip in ips_arr['data']['proxy_list']:
    proxy_auth_temp = {"http":  "http://%(user)s:%(pwd)
[email protected]
%(ip)s/" % {'user': username, 'pwd': password, 'ip': ip}, "https": "http://%(user)s:%(pwd)[email protected]%(ip)s/" % {'user': username, 'pwd': password, 'ip': ip}} proxy_auth.append(proxy_auth_temp)

 美團網抓取鮮花商家資訊:

 在輸入鮮花資訊後,點選搜尋,開啟network,分析我們想要的資料

分析Query String Parameters構成,不難推測各個引數的意思,由於商傢俱體資訊需要點列表的超連結進去二級詳細頁面,所以我們需要獲取到列表頁的超連結資訊。 最後的python程式碼為

    data = {
        'uuid':'2a344b34b62b4666af73.1535625802.1.0.0',
        'userid':-1,
        'limit':32,
        'offset':32*page_num,
        'cateId':-1,
        'q':search,
    }
    headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
            }
    url = 'http://apimobile.meituan.com/group/v4/poi/pcsearch/50?' 
    
    reponse = requests.get(url,params=data,headers=headers)
  
    data = json.loads(reponse.text)
    if data and 'data' in data.keys():
        for item in data.get('data').get('searchResult'):
            url = 'http://www.meituan.com/shenghuo/'+ str(item.get('id'))+'/'
            print(url)

最後在商家詳細頁面抓取我們想要的商家資訊:

            headers = {
                'Host': 'www.meituan.com',
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
            }
            
            prox = random.choice(proxy_auth)
          
            try:
                detail = requests.get(url, proxies=prox,headers=headers,timeout=10)
            except requests.RequestException as e:
                proxy_auth.remove(prox)
            else:
           
                soup = BeautifulSoup(detail.text,'html.parser')
                end = {
                    'seller_name' : soup.select('.seller-name')[0].get_text().strip(),
                    'address' : soup.select('.seller-info-body .item')[0].get_text().strip(),
                    'mobile' : soup.select('.seller-info-body .item')[1].get_text().strip(),
                    # 'time' : soup.select('.seller-info-body .item')[2].get_text().strip(),
                }
                print(end)
                result.append(end)
                # exit()
                
                urls.append(url)
                time.sleep(3)

 注意點:

     prox = random.choice(proxy_auth) 從我們的代理池中隨機挑選代理。

     在詳情頁使用try捕獲異常,如果產生異常時說明代理失效,從當前代理池中刪除

 完整示例:

from urllib.parse import urlencode 
import requests
import json
from bs4 import BeautifulSoup
import random
import time

urls = []
result = []
proxy_auth = []

username = "#########"
password = "#######"

ips = requests.get('http://dps.kdlapi.com/api/getdps/?orderid=#######&num=30&pt=1&format=json&sep=1')

ips_arr = json.loads(ips.text)

for ip in ips_arr['data']['proxy_list']:
    proxy_auth_temp = {"http":  "http://%(user)s:%(pwd)[email protected]%(ip)s/" % {'user': username, 'pwd': password, 'ip': ip},
              "https": "http://%(user)s:%(pwd)[email protected]%(ip)s/" % {'user': username, 'pwd': password, 'ip': ip}}
    proxy_auth.append(proxy_auth_temp)
    



def getAllUrls(page_num,search):
    
    data = {
        'uuid':'2a344b34b62b4666af73.1535625802.1.0.0',
        'userid':-1,
        'limit':32,
        'offset':32*page_num,
        'cateId':-1,
        'q':search,
    }
    headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
            }
    url = 'http://apimobile.meituan.com/group/v4/poi/pcsearch/50?' 
    
    reponse = requests.get(url,params=data,headers=headers)
  
    data = json.loads(reponse.text)
    if data and 'data' in data.keys():
        for item in data.get('data').get('searchResult'):
            url = 'http://www.meituan.com/shenghuo/'+ str(item.get('id'))+'/'
            print(url)
            headers = {
                'Host': 'www.meituan.com',
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
            }
            
            prox = random.choice(proxy_auth)
          
            try:
                detail = requests.get(url, proxies=prox,headers=headers,timeout=10)
            except requests.RequestException as e:
                proxy_auth.remove(prox)
            else:
           
                soup = BeautifulSoup(detail.text,'html.parser')
                end = {
                    'seller_name' : soup.select('.seller-name')[0].get_text().strip(),
                    'address' : soup.select('.seller-info-body .item')[0].get_text().strip(),
                    'mobile' : soup.select('.seller-info-body .item')[1].get_text().strip(),
                    # 'time' : soup.select('.seller-info-body .item')[2].get_text().strip(),
                }
                print(end)
                result.append(end)
                # exit()
                
                urls.append(url)
                time.sleep(3)

def main():
    page_counts = 3 
    search = '鮮花'
    for i in range(0,page_counts):
        total = getAllUrls(i,search)


if __name__ == '__main__':
    
    main()
    # print(json.dumps(result))

相關推薦

python--鮮花商家資訊設定代理

代理池設定: 這裡代理ip從快代理那獲取,新使用者有4小時免費測試時間。從http://dps.kdlapi.com/api/getdps/中獲取我們的ip代理池,根據使用者名稱密碼最後生成proxy_auth代理池。 proxy_auth = [] usernam

python所有結婚商家(包括詳情)

 本文章主要介紹爬取美團結婚欄目所有商家資訊(電話)  第一步:爬取區域 分析鞍山結婚頁面 https://as.meituan.com/jiehun/ 分析重慶結婚頁面 https://cq.meituan.com/jiehun/ 分析可得:url基本相同,我們只需爬取美團

下午不知道吃什麼?用Python外賣評論幫你選餐!

一、介紹 朋友暑假實踐需要美團外賣APP評論這一份資料,一開始我想,這不就抓取網頁原始碼再從中提取資料就可以了嗎,結果發現事實並非如此,情況和之前崔大講過的分析Ajax來抓取今日頭條街拍美圖類似,都是通過非同步載入的方式傳輸資料,不同的是這次的是通過JS傳輸,其他的基本思路基本一致,希望那些資料

python大眾點評網商家資訊以及評價並將資料儲存到excel表中(原始碼及註釋)

import requests from bs4 import BeautifulSoup import traceback # 異常處理 import xlwt # 寫入xls表 # Cookie記錄登入資訊,session請求 def get_content(url,he

python空網女神圖片小心記憶體走火

爬蟲分析 首先,我們已經爬取到了N多的使用者個人主頁,我通過連結拼接獲取到了 www.moko.cc/post/da39db…   在這個頁面中,咱們要找幾個核心的關鍵點,發現 平面拍攝 點選進入的是圖片列表頁面。 接下來開始程式碼走起。 獲取所有列表頁面 我

網美食資料看北京上海都愛吃些啥

資料爬取三步曲之前方有坑 工作需求需要採集 OTA 網站的美食資料,某個城市的飯店型別情況等。對於老饕來說這不算個事,然而最後的結果是午飯晚飯都沒有時間去吃了……情況如下: Chrome F12 直接定位 get 請求,response 的結

python2.7+anaconda爬蟲商家資訊

第一步,開啟美團 網https://chs.meituan.com/(谷歌瀏覽器)——點選右鍵檢查——點選左中箭頭——選中文字美食<a href=http://chs.meituan.com/meishi/,接下來我們把這些url爬取下來 def get_sta

分析並美食資訊的一個簡單爬蟲練習。

    閒來無聊,感覺美團資訊可能會爬取有點難度,so,我就想來試一試爬取一下美團的美食的資訊,不過,經過搜尋,也有大佬做過了,但是我自己做的呢,還是寫下來分享一下吧,畢竟是自己寫出來的程式碼。      依然用到的是Python3,Request,bs4裡面的Beauti

實戰 Python 網路爬蟲:美食商家資訊和使用者評論

實戰 Python 網路爬蟲美團美食商家資訊和使用者評論作者簡介:Hyx,多年系統研發經驗,主要

網的美食點評資訊(含頁面分析過程)

寫在前面:        憑藉興趣寫了很多爬蟲的小程式,但是都沒有以博文的形式分享出來。爬取美團網的資料是因為課題研究需要,已經將深圳所有的美團店鋪評論資料爬取完畢(大眾點評和百檽米的相應區域也已爬取完畢,對爬蟲有興趣可以看我的GitHub主頁:https://github

python爬蟲西安美食資料

經歷了一週的種種波折,參考了CSDN上N多博主的部落格,終於搞定了美團西安美食資料,在此做簡單記錄:愚蠢如我,不知如何讓爬蟲程式翻下一頁,只好看了前後兩頁請求的網址有什麼不同,後來發現第一頁字尾是‘pn1’,第二頁是‘pn2’,以此類推……所以手動查看了一共有15頁之後,萌生

利用高德API + Python鏈家網租房資訊 01

看了實驗樓的專案發現五八同城爬取還是有點難度所以轉戰鏈家 實驗程式碼如下 from bs4 import BeautifulSoup from urllib.request import urlopen import csv url = 'https://gz.lia

python拉勾網招聘資訊並以CSV檔案儲存

爬取拉勾網招聘資訊 1、在網頁原始碼中搜索資訊,並沒有搜到,判斷網頁資訊使用Ajax來實現的 2、檢視網頁中所需的資料資訊,返回的是JSON資料; 3、條件為北京+資料分析師的公司一共40087家,而實際拉勾網展示的資料只有 15條/頁 * 30頁 = 450條,所以需要判斷

python豆瓣電影Top250的資訊

python爬取豆瓣電影Top250的資訊 2018年07月25日 20:03:14 呢喃無音 閱讀數:50 python爬取豆瓣電影Top250的資訊。 初學,所以程式碼的不夠美觀和精煉。 如果程式碼有錯,請各位讀者在評論區評論,以免誤導其他同學。 (

python網易雲歌曲資訊及下載連結並簡單展示

我們選取的爬取目標是歌單這一塊兒 chrome瀏覽器 f12抓包 經過簡單的解析,拿到歌曲分類名字 create_table_sql = 'create table ’ + i + ‘(id int auto_increment primary key,song_name varch

Python空網未登入圖片

本人對於Python學習建立了一個小小的學習圈子,為各位提供了一個平臺,大家一起來討論學習Python。歡迎各位到來Python學習群:960410445一起討論視訊分享學習。Python是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並不斷的成長,

Python攜程旅遊行程資訊+GIS視覺化

一、需求:         爬取攜程旅行網的“北京推薦行程”首頁的各個行程文章,將各個行程所包含的景點資訊提取出來,並匯入ArcGIS進行GIS視覺化。 二、爬取思路:         爬取北京推薦行程主頁的各個文章的URL,然後通過該URL爬取出行程文章的資料

Python中國新說唱歌曲資訊

登入https://music.163.com/ 網易雲音樂搜尋新說唱,開啟Chrome的開發工具工具選擇Network並重新載入頁面,找到與評論資料相關的請求即name為web?csrf_token=的POST請求,如下圖所示 檢視該請求的headers我們發現f

Python拉勾網招聘資訊存入資料庫

先抓包分析我們想要獲取的資料,很明顯都是動態資料,所以直接到Network下的XHR裡去找,這裡我們找到具體資料後,就要去尋分析求地址與請求資訊了。還有需要提交的表單資訊分析完畢之後,我們就可以開始寫我們的爬蟲專案了。一.編寫Itemitem編寫比較簡單# 拉鉤職位資訊 cl

如何網美食!

資料爬取三步曲之前方有坑 工作需求需要採集OTA網站的美食資料,某個城市的飯店型別情況等。對於老饕來說這不算個事。。。然而最後的結果是中午晚飯都沒有時間去吃了。。。情況如下 進群:960410445 即可獲取數十套PDF!     Chrome F12直