我想用Python(3.5)和BeautifulSoup4从'https://www.amazon.com/gp/goldbox'
获取第一个报价。
我认为这会引用它:
import bs4 as bs
import urllib.request
sauce = urllib.request.urlopen('https://www.amazon.com/gp/goldbox').read()
soup = bs.BeautifulSoup(sauce, 'lxml')
for div in soup.find_all('div', class_='a-section a-spacing-none tallCellView gridColumn4 singleCell', id='100_dealView_0'):
print(div)
但显然它不打印任何参考/代码......为什么?
答案 0 :(得分:0)
产品信息不会直接进入html结构。它位于一个脚本中,然后传递给执行某些javascript的DOM。
我现在不知道如何使用汤来获取这些信息,但我会使用类似的东西:
$ pip install parsel
from parsel import Selector
import urllib.request
import re
import json
sauce = urllib.request.urlopen('https://www.amazon.com/gp/goldbox').read()
sel = Selector(unicode(a, 'utf-8'))
script = sel.xpath('//script[contains(., "dcsServerResponse")]').extract_first()
obj = re.search(r'dcsServerResponse : ({.+}),\n dealViewConfig', script, re.DOTALL).group(1)
json_response = json.loads(obj)
# now iterate the product deals
for k,v in json_response['dealDetails'].items():
# do whatever you want with the information.
答案 1 :(得分:0)
好的,谢谢你的回答。
一些帮助我并可能对您有所帮助的链接(如果您有同样的问题)。 https://www.youtube.com/watch?v=FSH77vnOGqU
最终我得到了一个selenium-phantomJS无头浏览器。 Python browser emulator with JS support
干杯!