日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP爬取企业详情(百度信用)

發布時間:2025/7/14 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP爬取企业详情(百度信用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、爬取思想

百度信用網站 https://xin.baidu.com/

1.1、嘗試獲取數據和查看url鏈接

1、我們可以隨便搜索法人代表,例如輸入:馬云

  • 對應的鏈接就會出現 https://xin.baidu.com/s?q=%E9%A9%AC%E4%BA%91&t=0

2、我們嘗試搜索公司名稱,例如輸入:阿里巴巴

  • 對應的鏈接就會出現 https://xin.baidu.com/s?q=%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4&t=0

3、我們嘗試搜索社會統一信用碼,例如輸入:91330100716105852F

  • 對應的鏈接就會出現 https://xin.baidu.com/s?q=%E9%A9%AC%E4%BA%91&t=0

4、我們嘗試搜索企業地址,例如輸入:浙江省杭州市濱江區網商路699號

  • 對應的鏈接就會出現 https://xin.baidu.com/s?q=%E6%B5%99%E6%B1%9F%E7%9C%81%E6%9D%AD%E5%B7%9E%E5%B8%82%E6%BB%A8%E6%B1%9F%E5%8C%BA%E7%BD%91%E5%95%86%E8%B7%AF699%E5%8F%B7&t=0

綜述:其中對應的q=后面的值就是 搜索關鍵詞,因為編碼問題顯示的不是中文而是%E9%A9%AC%E4%BA%91,而**t=**后面的值對應的是 搜索類型 如下,有8種:0=全部,1=企業名/注冊號,2=法人代表,3=地址,4=經營范圍,5=股東,6=高管,7=商標

1.2、查看網頁源代碼的內容
  • 可以通過右鍵查看源代碼
  • 使用Postman等測試工具查看,如下圖

從上圖可以看出返回的數據中有json數據,大部分獲取數據都是從這里取出來的。
所以我們只需要截取這里面的內容,轉換下就可以了。
##2、PHP代碼實現
#####2.1、爬取企業信息

//獲取公司統一社會信用代碼 $keyword = input('keyword') ?? 0; if (!$keyword) $this->error('請填寫關鍵詞!'); $url = 'https://xin.baidu.com/s?q=' . $keyword . '&t=0'; $res = file_get_contents($url);//獲取爬取到數據的對象 $start = strpos($res, 'define(\'global/tplData\',', 0) + 25; $end = strpos($res, '}]})', $start) + 3; $info = json_decode(substr($res, $start, $end - $start), 1)['resultList'];$this->success('獲取公司詳情成功!', $info);
  • strpos 方法是用于計算字符串出現該字符的第一個位置
  • substr 方法是用于截取字符串的

其中 define(‘global/tplData’, 后面的數據才是我們要的,所以開始的位置是 取到的位置 + 25個字符,從源代碼也可以知道結束的位置是 }]}) ,所以結束的位置是 取到的位置 + 3個字符,所以截取的字符串就是 開始位置 截取,長度為 結束位置 - 開始位置,從獲取的內容是 resultList 里面。

2、分析與實現

2.2、爬取內容分析
  • 舉例:輸入的關鍵詞為 阿里巴巴,輸出的話我這里只顯示一部分給大家分析
{"code": 1,"msg": "獲取公司詳情成功!","time": "1587554169","data": [{"pid": "xlTM-TogKuTwvxosgH5poHE*cNI4uVFPdAmd","entName": "<em>阿</em><em>里</em><em>巴巴</em>(中國)網絡技術有限公司","entType": "有限責任公司(臺港澳與境內合資)","validityFrom": "1999-09-09","domicile": "浙江省杭州市濱江區網商路699號","entLogo": "https://zhengxin-pub.bj.bcebos.com/logopic/71071e73a15c072e0955938dceab03ef_fullsize.jpg","openStatus": "開業","legalPerson": "戴珊","tags": {"laTaxer": "<span class=\"zx-ent-tag laTaxer\">A級納稅人(2018)</span>"},"logoWord": "阿里巴巴","titleName": "阿里巴巴(中國)網絡技術有限公司","titleLegal": "戴珊","titleDomicile": "浙江省杭州市濱江區網商路699號","levelAtaxer": [2018,2017,2016,2015,2014],"regCap": "1,072,526.0萬","bid": "573261311273","scope": "開發、銷售計算機網絡應用軟件;設計、制作、加工計算機網絡產品并提供相關技術服務和咨詢服務;服務:自有物業租賃,翻譯,成年人的非證書勞動職業技能培訓(涉及許可證的除外)。(依法須經批準的項目,經相關部門批準后方可開展經營活動)","hitReason": [{"品牌項目": "<em>阿里巴巴</em>"},{"企業名稱": "<em>阿</em><em>里</em><em>巴巴</em>(中國)網絡技術有限公司"},{"網站名稱": "<em>阿里巴巴</em>國際站APP下載短連接"}]}] }

從上面數據可以看出我們要的內容:

  • logoWord —LOGO關鍵詞, titleName —企業名稱,titleLegal —企業法人
  • regCap —企業注冊資產, scope —企業經營范圍,entType —企業類型
  • openStatus —企業開業狀態, validityFrom —企業注冊時間,titleDomicile —企業地址
  • 大體上需要的信息就在上面了,其中有些字段,例如:entName、domicilelegalPerson 這些有可能是搜索的關鍵詞,會出現 高亮的標簽,這樣會影響我們取數據。
2.3、詳細的處理數據并輸出
//獲取公司統一社會信用代碼 $keyword = input('keyword') ?? 0; if (!$keyword) $this->error('請填寫關鍵詞!'); $url = 'https://xin.baidu.com/s?q=' . $keyword . '&t=0'; $res = file_get_contents($url);//獲取爬取到數據的對象 $start = strpos($res, 'define(\'global/tplData\',', 0) + 25; $end = strpos($res, '}]})', $start) + 3; $info = json_decode(substr($res, $start, $end - $start), 1)['resultList']; if (empty($info)) $this->error('未找到該企業!');$data = []; foreach ($info as $key => $val) {$inData = ['titleName' => $val['titleName'], //公司名稱'entType' => $val['entType'], //公司類型'titleDomicile' => $val['titleDomicile'], //公司地址'titleLegal' => $val['titleLegal'], //公司法人'openStatus' => $val['openStatus'], //開業狀態'regCap' => $val['regCap'], //公司注冊資產'scope' => isset($val['scope']) ? $val['scope'] : '', //公司信息'validityFrom' => $val['validityFrom'], //注冊時間];$data[] = $inData; }$this->success('獲取公司詳情成功!', $data);
  • 通過搜索關鍵詞 阿里巴巴 ,我們得到的結果如下:
{"code": 1,"msg": "獲取公司詳情成功!","time": "1587555747","data": [{"titleName": "阿里巴巴(中國)網絡技術有限公司","entType": "有限責任公司(臺港澳與境內合資)","titleDomicile": "浙江省杭州市濱江區網商路699號","titleLegal": "戴珊","openStatus": "開業","regCap": "1,072,526.0萬","scope": "開發、銷售計算機網絡應用軟件;設計、制作、加工計算機網絡產品并提供相關技術服務和咨詢服務;服務:自有物業租賃,翻譯,成年人的非證書勞動職業技能培訓(涉及許可證的除外)。(依法須經批準的項目,經相關部門批準后方可開展經營活動)","validityFrom": "1999-09-09"},{"titleName": "阿里巴巴(中國)有限公司","entType": "有限責任公司(臺港澳法人獨資)","titleDomicile": "浙江省杭州市濱江區長河街道網商路699號4號樓5樓508室","titleLegal": "張勇","openStatus": "開業","regCap": "15,298.0萬","scope": "服務:企業管理,計算機系統服務,電腦動畫設計,經濟信息咨詢服務(除商品中介),成年人的非證書勞動職業技能培訓和成年人的非文化教育培訓(涉及前置審批的項目除外);生產:計算機軟件;銷售自產產品。(國家禁止和限制的除外,凡涉及許可證制度的憑證經營)","validityFrom": "2007-03-26"}] }

這樣就可以得到我們要的數據了

  • 作者我建議還是讓用戶輸入社會統一信用碼來精準搜索會好點,代碼如下:
//獲取公司統一社會信用代碼 $creditCode = input('credit_code') ?? 0; if (!$creditCode) $this->error('請填寫統一社會信用代碼!'); $url = 'https://xin.baidu.com/s?q=' . $creditCode . '&t=1'; $res = file_get_contents($url);//獲取爬取到數據的對象 $start = strpos($res, 'define(\'global/tplData\',', 0) + 25; $end = strpos($res, '}]})', $start) + 3; $info = json_decode(substr($res, $start, $end - $start), 1)['resultList'];//判斷是否存在該企業 if (empty($info)) $this->error('未找到該企業!');//獲取企業信息 $info = $info[0]; //需要判斷一次是否信用代碼一致(如果公司名稱里面有則代表不是正確的信用碼) if (strpos($info['titleName'], $creditCode) !== false) $this->error('請填寫正確的信用代碼!');$data = []; $data['titleName'] = $info['titleName'];//公司名稱 $data['entType'] = $info['entType'];//公司類型 $data['titleDomicile'] = $info['titleDomicile'];//公司地址 $data['titleLegal'] = $info['titleLegal'];//公司法人 $data['openStatus'] = $info['openStatus'];//開業狀態 $data['regCap'] = $info['regCap'];//公司注冊資產 $data['scope'] = isset($info['scope']) ? $info['scope'] : '';;//公司信息 $data['validityFrom'] = $info['validityFrom'];//注冊時間$this->success('獲取公司詳情成功!', $data);
  • 如果只查詢信用碼的話需要判斷是否正確的信用碼,我這里直接去判斷信用碼是否在企業名字符串中,因為我們傳的類型 t=1 是包括信用碼和企業名的查詢參數。

結果輸出如下:

{"code": 1,"msg": "獲取公司詳情成功!","time": "1587556071","data": {"titleName": "貴州龍恒農業生態發展有限公司","entType": "有限責任公司(自然人投資或控股)","titleDomicile": "貴州省貴陽市南明區花果園后街彭家灣花果園項目E區第E8(國際金融街2號)棟(E8)1單元19層12號[花果園社區]","titleLegal": "黃恩祥","openStatus": "開業","regCap": "100.0萬","scope": "法律、法規、國務院決定規定禁止的不得經營;法律、法規、國務院決定規定應當許可(審批)的,經審批機關批準后憑許可(審批)文件經營;法律、法規、國務院決定規定無需許可(審批)的,市場主體自主選擇經營。(農業生態項目開發;銷售:農產品、辦公設備、五金交電、玩具、辦公用品、日用百貨、服裝、家用電器、電腦耗材、電子產品、通訊器材、消防器材、安防器材、環保器材、橡膠制品、礦產品、礦渣、鋁合金制品、建筑材料、電線電纜、潤滑油、金屬材料、工藝品、珠寶首飾、鐘表眼鏡、二三類機電產品;工程勞務分包;房地產經紀。)","validityFrom": "2012-03-23"} }
謝謝大家的觀賞,如果有什么錯誤的地方請多指教。

PS:僅供學習和參考,禁止商用。如果觸犯法律請并承擔法律責任與賠償!

總結

以上是生活随笔為你收集整理的PHP爬取企业详情(百度信用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。