如何使用BeautifulSoup/Python提取网页脚本的结果



我正在尝试编写一个Python程序,以使用BeautifulSoup在网络上抓取给定产品编号的产品名称。我使用此页面作为示例:http://www.adv-bio.com/search-results/?q=1081 .理想情况下,我会从此页面中提取字符串"DAIRY COMPLEX NATURAL",以及该链接的URL。

我刚刚开始使用 BeautifulSoup,但到目前为止,我最接近我正在寻找的标签的是使用 soup.find('p'(,它显示了一个我不知道如何解析结果的脚本。

我非常感谢你们能提供的任何帮助。

编辑这里是我认为包含我想要的信息的脚本的代码:

<p><script>// <![CDATA[
(function () {
var frameBaseSRC = document.getElementById("results").src;
var frameQueryString = document.location.href.split("?q=")[1];
if (frameQueryString != undefined) {
document.getElementById("results").src = frameBaseSRC + "?q=" + frameQueryString;
}
})();

//]]>

到目前为止,我的代码只有:

from bs4 import BeautifulSoup
import requests
page = requests("http://www.adv-bio.com/search-results/?q=1081")
soup = BeautifulSoup(page.text, 'lxml')
soup.find('p')

这给了我上面的脚本文本。

抱歉,如果我不清楚,我花了几个小时阅读,但所有链接都是紫色的,我觉得我错过了一些简单的东西。

如果您在浏览器中检查网络流量(检查>网络(,您会注意到搜索结果内容是通过请求提供的http://prod.adv-bio.com/SearchResults.aspx?q=1081
因此,您可以改用该网址。

url = "http://prod.adv-bio.com/SearchResults.aspx?q=1081"
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
a = soup.find('a', {'id':'SearchGridView_ctl02_hlProdDetails'})
text, link = a.text, a.get('href')

最新更新