有谁能够解答吗 Python爬虫 XPath

用XPath做,得到了空值,遇到了反爬

img

你需要先确定返回的响应内容中有没有这些分类信息,有的话则是xpath没写对。

没有分类信息的话,需要在请求时构造和浏览器相同的请求头信息。


from selenium import webdriver

if __name__ == '__main__':
    Driver = webdriver.Chrome()  # 初始化谷歌浏览器的webdriver驱动
    Driver.get("https://www.jd.com/")  # 首先跳转到狗东官网(从百度等搜索网站跳转到目标网站也可以)
    Driver.get("https://channel.jd.com/1320-1585.html")  # 然后再跳转到需要爬取的网站
    # 不能一上来就跳转到需要爬取的网站,这样的行为无异于直接告诉狗东,我是爬虫
    Driver.implicitly_wait(3)  # 这条语句的最主要作用是让页面全部加载出来(这里涉及到狗东的反爬措施)
    elements = Driver.find_elements_by_xpath(r'//div[@class="threetpl_nav_body"]/a')  # 这里利用xpath爬取了一个可遍历的elements对象
    # find_elements_by_xpath方法将要被selenium删除,应该写成Driver.find_elements('xpath', r'//div[@class="threetpl_nav_body"]/a')
    # 但是因为个人习惯原因,我这里还是用的是find_elements_by_xpath
    result_dict = {}  # 新建一个result_dict字典,用于存放结果
    for element in elements:  # 遍历elements对象,生成element对象
        result_dict[element.text] = element.get_attribute('href')  # 将结果保存到结果字典中
    print(result_dict)