Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python BeautifulSoup可以';不读取div标签_Python_Beautifulsoup - Fatal编程技术网

Python BeautifulSoup可以';不读取div标签

Python BeautifulSoup可以';不读取div标签,python,beautifulsoup,Python,Beautifulsoup,我正在尝试从以下页面获取我正在处理的项目的产品:, 使用: 当我这样做时,我得到以下错误: Traceback (most recent call last): File "C:/Python27/project/testaja.py", line 9, in print letters[0] IndexError: list index out of range 回溯(最近一次呼叫最后一次): 文件“C:/Python27/project/testaja.py”,第9行,在 印

我正在尝试从以下页面获取我正在处理的项目的产品:, 使用:

当我这样做时,我得到以下错误:

Traceback (most recent call last): File "C:/Python27/project/testaja.py", line 9, in print letters[0] IndexError: list index out of range 回溯(最近一次呼叫最后一次): 文件“C:/Python27/project/testaja.py”,第9行,在 印刷信件[0] 索引器:列表索引超出范围
对此有何想法?

我认为您可能访问了他们的页面太多,请在浏览器中导航并查看该页面在您的网络上返回的内容

此外,您还可以修改代码,以便检查页面响应标题,以确保在尝试刮取页面之前页面正确返回。我修改了您的代码以显示以下示例:

from bs4 import BeautifulSoup
import urllib
import re

r = urllib.urlopen("http://www.lazada.co.id/catalog/?q=note+2")
header_code = r.getcode()

if header_code == 200:
    html = r.read()
    soup = BeautifulSoup(html, "lxml")
    letters = soup.findAll("span", {"class" : re.compile("product-card__name")})

    for letter in letters:
        print letter
else:
    print("oops, something went wonky. Page response was: %s"% header_code)

我认为您可能访问了他们的页面太多,请在浏览器中导航,然后查看页面在您的网络上返回的内容

此外,您还可以修改代码,以便检查页面响应标题,以确保在尝试刮取页面之前页面正确返回。我修改了您的代码以显示以下示例:

from bs4 import BeautifulSoup
import urllib
import re

r = urllib.urlopen("http://www.lazada.co.id/catalog/?q=note+2")
header_code = r.getcode()

if header_code == 200:
    html = r.read()
    soup = BeautifulSoup(html, "lxml")
    letters = soup.findAll("span", {"class" : re.compile("product-card__name")})

    for letter in letters:
        print letter
else:
    print("oops, something went wonky. Page response was: %s"% header_code)

打印(r)
输出什么?这段代码对我来说很好。这段代码对我来说也很好。我怀疑你没有访问权限(可能是你刮得太频繁,服务器阻止了你-检查标题代码是否为403),或者由于某种原因HTML从未发送过。什么是
打印(r)
输出?这段代码对我来说很好。这段代码对我来说也很好。我怀疑你没有访问权限(可能是你刮得太频繁,服务器阻止了你-检查标题代码是否为403),或者是由于某种原因HTML从未发送过。我尝试了你的代码,得到了标题代码200,但仍然找不到元素span,它没有返回任何其他来源,先生?顺便说一句,我在windows 8中使用python 2.7.1.1
提前感谢您检查我是如何修改示例中的soup findAll的,看看这是否适用于您。好的,现在试试。我不知道Beautifulsoup4使用的正则表达式与版本3不同。还是不走运,先生:(但是当我对其他web ex执行此操作时,它工作正常,但仍然没有返回任何内容。您能否确保HTML为您正确加载,并且它不是验证码或类似的内容?我已针对此页面对其进行了测试,它返回了整个项目列表。我尝试了您的代码,得到了标题代码200,但仍然找不到元素spa。)n它不返回任何其他解决方案,先生?顺便说一句,我在windows 8中使用python 2.7.1.1
提前感谢您检查我如何修改示例中的soup findAll,看看这是否对您有效。好的,现在试试。我不知道beautifulsoup 4使用的正则表达式与版本3不同。仍然没有运气,先生:(但当我对其他web ex执行此操作时,其工作正常,但仍然没有返回任何内容。您能否确保HTML为您正确加载,并且不是验证码或类似的内容?我已针对此页面对其进行了测试,它返回一整列项目。