首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BeautifulSoup -从<head>和</head>中提取文本

BeautifulSoup -从<head>和</head>中提取文本
EN

Stack Overflow用户
提问于 2021-12-20 11:23:55
回答 2查看 225关注 0票数 0

我正在尝试从页面上的源代码中提取文本。在标签中,我想提取以下内容:

代码语言:javascript
复制
<script src="/_next/static/d5fgdrSQl/_buildM.js" defer=""></script>

d5fgdrSQl是一个动态数据,我需要每天准确地丢弃这个密钥。

我的剧本是这样开始的,但我不知道该怎么做。

代码语言:javascript
复制
from bs4 import BeautifulSoup
import re
import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36'}
urlweb = 'https://www.thenameofthewebiste.com'

r1 = requests.get(urlweb,headers=headers)

s1 = BeautifulSoup(r1.text, 'html.parser')
TAG = s1.find_all('_buildM')

print(TAG)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-20 11:37:25

您需要传递一个用户代理报头,然后可以使用一个属性=值css选择器,带有$操作符的ends来锁定脚本src。

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup as bs

r = requests.get('https://www.paris-turf.com/', headers = {'User-Agent':'Mozilla/5.0'})
soup = bs(r.content, 'lxml')
print(soup.select_one('[src$="_buildManifest.js"]')['src'].split('/')[3])
票数 2
EN

Stack Overflow用户

发布于 2021-12-20 11:46:26

要动态选择,可以使用re

代码语言:javascript
复制
from bs4 import BeautifulSoup
import re

doc ='''
<script src="/_next/static/85565454878CDDS7785/_builddata.js" defer=""></script>
'''
      
soup = BeautifulSoup(doc,'lxml')
script= soup.find("script")
s=script['src']
d=re.search(r'(\d+\w+\d+)',s).group(1)
print(d)

输出

代码语言:javascript
复制
85565454878CDDS7785
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70421064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档