Python BeautifulSoup html.parser无法正常工作 - javascript

我有一个脚本可以从Amazon处获取图书信息,该脚本以前曾成功运行,但今天却失败了。我无法弄清楚到底出了什么问题,但我假设它与解析器或Javascript有关。我正在使用以下代码。

from bs4 import BeautifulSoup
import requests

response = requests.get('https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dstripbooks&field-keywords=9780307397980',headers={'User-Agent': b'Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'})
html = response.content
soup = BeautifulSoup(html, "html.parser")
resultcol = soup.find('div', attrs={'id':'resultsCol'})

以前我曾经在resultcol中获取数据,但现在它为空白。当我检查html时,我看到的标签是<div id="resultsCol" class=\'\' >。但是soup中没有此文本。谁能帮我调试一下吗?之前它工作得很好,但现在不是。

参考方案

您需要等待页面完全加载完毕。您必须使用phantomJs来确保页面正确加载。

我可以使用以下代码获取正确的元素。

import requests
from bs4 import BeautifulSoup
from selenium import webdriver

url = ("https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3D"
       "stripbooks&field-keywords=9780307397980")

browser = webdriver.PhantomJS()
browser.get(url)
html = browser.page_source
soup = BeautifulSoup(html, 'lxml')
resultcol = soup.find('img', attrs={'class': 's-access-image'})
print resultcol

如何使用漂亮的汤将javascript添加到html中? - javascript

我正在使用漂亮的汤来编辑html文件。我已经可以添加标签,但是我无法在script元素中添加我的javascript代码。我有以下代码:soup = BeautifulSoup(differencehtml, 'html.parser') # create a new tag tag = soup.new_tag("script…

如何从脚本中提取数据? - javascript

这是包含所需数据的脚本在html页面上的样子: u'{displayName:“ iPhone 5 16GB黑色”, productNameUrl:“ apple-iphone-5-16gb黑色和平板”, _default:“ true”,优先级:“ 1”,paymMinPrice:“ 9.99”,paymMinMrc:“ 46.00”, paymMinCo…

Javascript + Python:将数组发送到Python脚本,将结果返回给Javascript - javascript

我想建立一个网页,该网页通过Javascript API进行许多Facebook状态更新,并将它们分类到一个数组中。然后,我想将此数组发送到Python脚本,该脚本可以专门使用NLTK.进行语言分析。在Python中获得合适的结果后,我想将结果从该脚本返回到Javascript,以显示给用户等。听起来可能吗? javascript大神给出的解决方案 是的,完…

html onClick打开url存储在php变量中 - javascript

以下是我的代码,正在获取Uncaught SyntaxError: Unexpected token },但是我的代码中没有看到任何}。 window.open期望用引号引起来的url,我尝试了单引号和双引号的不同组合,但不起作用并且也无法在echo中转义双引号。请帮助谢谢..<?php $a = "https://www.google.co…

使用C#和JavaScript绑定HTML - javascript

我想从C#绑定HTML。我尝试了下面的代码HtmlTextWriter.write("<a onclick=\"window.open('', '_blank', 'location=yes,height=570,width=520,scrollbars=yes,status=yes…