Web scraping 使用bs4从javascript json类型数据中提取键值数据

Web scraping 使用bs4从javascript json类型数据中提取键值数据,web-scraping,beautifulsoup,Web Scraping,Beautifulsoup,我试图从网页的HTML中提取一些信息。 但正则表达式方法和列表理解方法都不起作用 在,有一个名为encparam的键包含在一个javascript标记的getjason中,该标记在页面所有脚本元素的第49位 提前谢谢你的帮助 sam = requests.get('http://bitly.kr/RWz5x') #html = sam.text html=sam.content soup = BeautifulSoup(html, 'html.parser') scripts = soup.

我试图从网页的HTML中提取一些信息。 但正则表达式方法和列表理解方法都不起作用

在,有一个名为encparam的键包含在一个javascript标记的getjason中,该标记在页面所有脚本元素的第49位

提前谢谢你的帮助

sam = requests.get('http://bitly.kr/RWz5x')
#html = sam.text
html=sam.content
soup = BeautifulSoup(html, 'html.parser')


scripts = soup.find_all('script')
#your_script = [script for script in scripts if 'encparam' in str(script)][0]
#print(your_script)
#print(scripts)
pattern = re.compile("(\w+): '(.*?)'")
fields = dict(re.findall(pattern, scripts.text))

将您的请求发送到“源”选项卡中的以下url:



您可能完全可以避免bs4:

import requests
import re
r = requests.get("https://navercomp.wisereport.co.kr/v2/company/c1010001.aspx?cmp_cd=005930") 
p = re.compile(r"encparam: '(.*)'")
encparam = p.findall(r.text)[0]
print(encparam)

如果您确实想要字符串中的encparam部分:

import requests
import re
r = requests.get("https://navercomp.wisereport.co.kr/v2/company/c1010001.aspx?cmp_cd=005930") 
p = re.compile(r"(encparam: '\w+')")
encparam = p.findall(r.text)[0]
print(encparam)

将您的请求发送到“源”选项卡中的以下url:



您可能完全可以避免bs4:

import requests
import re
r = requests.get("https://navercomp.wisereport.co.kr/v2/company/c1010001.aspx?cmp_cd=005930") 
p = re.compile(r"encparam: '(.*)'")
encparam = p.findall(r.text)[0]
print(encparam)

如果您确实想要字符串中的encparam部分:

import requests
import re
r = requests.get("https://navercomp.wisereport.co.kr/v2/company/c1010001.aspx?cmp_cd=005930") 
p = re.compile(r"(encparam: '\w+')")
encparam = p.findall(r.text)[0]
print(encparam)