簡體   English   中英

如何使用Regex(知道變量名)從URL中提取數據?

[英]How do I extract the data from the URL using Regex (Know the variable name)?

我正在嘗試使用Scrapy and Beautiful Soup從網站https://www.icra.in/Rationale/Index?CompanyName=20%20Microns%20Limited中提取數據。 但是,當我使用類'list-nw'時,兩個刮板都返回空。

我使用BS嘗試了不同的解析器,但相同。 仔細觀察,我發現視圖源包含我需要的數據。 因此,我得到具有數據的文本中的頁面內容。 (而不是課程)。

如何使用正則表達式在變量var Model內的鍵"LstrationaleDetails"提取整個數組。 (電話號碼793)?

我嘗試了幾種Regex,但無法進行。 是Regex唯一的選擇,還是我可以使用Scrapy或BS? 也很困惑,因為提取后我將如何存儲它? 如果它是JSON,則可以反序列化。 我在想些spliteval的事情。

我為BS嘗試過這個。

page = urllib.request.urlopen(quote_page)
soup = BeautifulSoup(page, 'html5lib.parser')
print(soup)

謝謝您的幫助。

歸屬於@tmadam

您可以使用以下正則表達式從源html中提取。 使用DOTALL標志允許換行符。 標頭中需要User-Agent。

import requests
import re
import json

url = 'https://www.icra.in/Rationale/Index?CompanyName=20%20Microns%20Limited'
headers = {    
    'User-Agent' : 'Mozilla/5.0'
}
r = requests.get(url, headers = headers)
data = re.search('var Model =(.*?);\s+Ratinoal', r.text, flags=re.DOTALL).group(1)
result = json.loads(data)
for item in result['LstrationaleDetails']:
    print(item)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM