需要的爬取的内容隐藏在script中,怎么提取?

2021-03-02 10:59发布

[图]隐藏在这里需要的内容在后面网页源码已爬取,现需要提取标签内特定内容。新手小白,还请多多指点!

隐藏在这里

需要的内容在后面

网页源码已爬取,现需要提取标签内特定内容。新手小白,还请多多指点!


9条回答
是你的小甜心呀
2楼 · 2021-03-02 15:48

import requests

from bs4 import BeautifulSoup

import re

import json

req=requests.get(url,headers=headers)

soup=BeautifulSoup(req.text,'lxml')

r=soup.select('script:contains("window.__SEARCH_RESULT__")')[0]

res = re.findall('window.__SEARCH_RESULT__ = (.*);',r.string)

data=json.loads(res[0])

print(data)

print(type(data))#转换成了字典,从中解析中所需数据。


我想吃肉
3楼 · 2021-03-02 16:40
import refrom bs4 import BeautifulSoupfrom urllib.request import urlopenurl = "你要解析的网页URL"html = urlopen(url).read()soup = BeautifulSoup(html,"html.parser")titles = soup.select("body  script") # CSS 选择器i = 1for title in titles:if i == 3:#print(title.get_text())# 标签体、标签属性str=title.get_text()breakif i == 2:i = 3if i == 1:i = 2print(str)str1 = "\"\"\""+"[removed]"+str+"[removed]"+"\"\"\""soup = BeautifulSoup(str1, "html.parser")pattern = re.compile(r"var _url = '(.*?)';$", re.MULTILINE | re.DOTALL)script = soup.find("script", text=pattern)#print (pattern.search(script.text).string)s = pattern.search(script.text).stringprint (s.split('\'')[11])

  


这是网页上的script 我要获取的是00914这个数字  直接使用正则表达式即可

运行结果:

 

源码:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import re
from bs4 import BeautifulSoup
from urllib.request import urlopen
url = "你要解析的网页URL"
html = urlopen(url).read()
soup = BeautifulSoup(html,"html.parser")
titles = soup.select("body  script"# CSS 选择器
= 1
for title in titles:
    if == 3:
     #print(title.get_text())# 标签体、标签属性
     str=title.get_text()
     break
    if == 2:
        = 3
    if == 1:
        = 2
 
print(str)
str1 = "\"\"\""+"[removed]"+str+"[removed]"+"\"\"\""
soup = BeautifulSoup(str1, "html.parser")
pattern = re.compile(r"var _url = '(.*?)';$", re.MULTILINE | re.DOTALL)
script = soup.find("script", text=pattern)
#print (pattern.search(script.text).string)
= pattern.search(script.text).string
print (s.split('\'')[11])


ablabla
5楼 · 2021-03-04 14:58

import requests

from bs4 import BeautifulSoup

import re

import json

req=requests.get(url,headers=headers)

soup=BeautifulSoup(req.text,'lxml')

r=soup.select('script:contains("window.__SEARCH_RESULT__")')[0]

res = re.findall('window.__SEARCH_RESULT__ = (.*);',r.string)

data=json.loads(res[0])

print(data)

print(type(data))#转换成了字典,从中解析中所需数据。



帅帅马
6楼 · 2021-03-04 16:27

import requests

from bs4 import BeautifulSoup

import re

import json

req=requests.get(url,headers=headers)

soup=BeautifulSoup(req.text,'lxml')

r=soup.select('script:contains("window.__SEARCH_RESULT__")')[0]

res = re.findall('window.__SEARCH_RESULT__ = (.*);',r.string)

data=json.loads(res[0])

print(data)

print(type(data))#转换成了字典,从中解析中所需数据。


天使的奶爸
7楼 · 2021-03-06 11:37

import requests

from bs4 import BeautifulSoup

import re

import json

req=requests.get(url,headers=headers)

soup=BeautifulSoup(req.text,'lxml')

r=soup.select('script:contains("window.__SEARCH_RESULT__")')[0]

res = re.findall('window.__SEARCH_RESULT__ = (.*);',r.string)

data=json.loads(res[0])

print(data)

print(type(data))#转换成了字典,从中解析中所需数据。


是年糕麻麻啊
8楼 · 2021-03-08 09:35

import requests

from bs4 import BeautifulSoup

import re

import json

req=requests.get(url,headers=headers)

soup=BeautifulSoup(req.text,'lxml')

r=soup.select('script:contains("window.__SEARCH_RESULT__")')[0]

res = re.findall('window.__SEARCH_RESULT__ = (.*);',r.string)

data=json.loads(res[0])

print(data)

print(type(data))#转换成了字典,从中解析中所需数据。



不吃鱼的猫
9楼 · 2021-03-11 09:56

导入请求
import requests

from bs4 import BeautifulSoup

import re

import json

req=requests.get(url,headers=headers)

soup=BeautifulSoup(req.text,'lxml')

r=soup.select('script:contains("window.__SEARCH_RESULT__")')[0]

res = re.findall('window.__SEARCH_RESULT__ = (.*);',r.string)

data=json.loads(res[0])

print(data)

print(type(data))#转换成了字典,从中解析中所需数据。