Python 我的网络爬虫正在抛出错误,而不是获取数据

Python 我的网络爬虫正在抛出错误,而不是获取数据,python,web-crawler,Python,Web Crawler,我无法找出我在代码中犯的任何错误。XPath没有 问题。如果单独检查,则功能正常。当我运行 它将获得以下错误。基本上,当它到达 要处理的Layer2函数。当我在第一次制作的 我可以注意到这些链接都是完整的URL。我该怎么办 在这一刻取得成果。提前谢谢 蜘蛛网: 根据Max Paymar的建议修改了上述代码。现在它开始工作了。我从未使用过这个库,所以我可能是错的,但它看起来需要修改url变量,使其成为字符串。错误消息中的括号“[”显然不合适。我从未使用过此库,因此可能会出错,但似乎需要修改url变

我无法找出我在代码中犯的任何错误。XPath没有 问题。如果单独检查,则功能正常。当我运行 它将获得以下错误。基本上,当它到达 要处理的Layer2函数。当我在第一次制作的 我可以注意到这些链接都是完整的URL。我该怎么办 在这一刻取得成果。提前谢谢

蜘蛛网:
根据Max Paymar的建议修改了上述代码。现在它开始工作了。

我从未使用过这个库,所以我可能是错的,但它看起来需要修改url变量,使其成为字符串。错误消息中的括号“[”显然不合适。

我从未使用过此库,因此可能会出错,但似乎需要修改url变量,使其成为字符串。括号是['在错误消息中似乎确实不合适。感谢Max Paymar的回答。我已经解决了列表问题,但这也不能解决问题。当我检查打印第一个生成的链接时,我没有看到任何url缺少http://但控制台显示了这一点。真的很困惑。现在它说url是空字符串。因此,当您生成URL时仍然出现问题。这一行中的link=.joinstre for e是罪魁祸首。您使用的列表理解没有生成任何字符串。嘿,Max Paymar,请在答案中写下您的第一条评论,以便我可以接受。我已经按照您的第一条建议解决了问题。
import requests
from lxml import html

def Startpoint():
    address = "https://www.sephora.ae/en/stores/"
    page = requests.get(address)
    tree = html.fromstring(page.text)
    titles=tree.xpath('//li[contains(@class,"level0")]')
    for title in titles:
        href = title.xpath('.//a[contains(@class,"level0")]/@href')[0]
        Layer2(href)

def Layer2(address):
    page = requests.get(address)
    tree = html.fromstring(page.text)
    titles=tree.xpath('//div[@class="product-manufacturer"]')
    for title in titles:
        href = title.xpath('.//a/@href')[0]
        Endpoint(href)

def Endpoint(address):
    page = requests.get(address)
    tree = html.fromstring(page.text)
    titles=tree.xpath('//div[@class="add-to-cart"]')
    for title in titles:
        Name = title.xpath('.//div[@class="h2"]/text()')[0]
        Price = title.xpath('.//span[@class="price"]/text()')[0]
        print('{}{}'.format(Name, Price))      

Startpoint()