tan123666666666 2023-11-29 20:42 采纳率: 0%
浏览 1

pycharm 爬虫生成空列表

import requests
import logging
logging.captureWarnings(True)
from lxml import etree
import pandas as pd

网址 = "https://www.jkl.com.cn/shop.aspx"
UA伪装 = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0'}
响应数据 = requests.get(url=网址,verify=False,headers=UA伪装).content
解析=etree.HTML(响应数据)
城区 = 解析.xpath('//div[@class="infoLis"]//@href ')
for 区 in 城区:
网址2 ='https://www.jkl.com.cn/cn/' + 区
响应数据1=requests.get(url=网址2,verify=False,headers=UA伪装).text
解析1 = etree.HTML(响应数据1)
店铺名称 = 解析1.xpath('//span[@class="con01"]/text()')
print(店铺名称)
为什么打印会生成空列表?

  • 写回答

3条回答 默认 最新

  • 星川皆无恙 大数据领域优质创作者 2023-11-29 20:49
    关注

    在你的代码中,你首先从主页获取所有城区的链接,然后循环访问这些链接,提取店铺名称。在这个过程中,可能存在一些原因导致打印生成空列表的问题。

    以下是一些可能的原因和建议的解决方法:

    XPath选择器错误: 检查 解析1.xpath('//span[@class="con01"]/text()') 是否确实匹配到了期望的元素。你可以通过在浏览器中检查网页的 HTML 结构来验证你的 XPath 选择器是否正确。

    网页结构动态加载: 如果网页使用 JavaScript 进行动态加载,requests.get 可能无法获取到完整的页面内容。你可以考虑使用模拟浏览器行为的工具,比如 Selenium。

    请求头问题: 有些网站可能对请求头进行了检查,你可以尝试更改请求头,使其更接近真实浏览器请求。例如,你可以使用浏览器开发者工具查看真实请求的请求头。

    网络问题: 确保你的网络连接正常,而且能够正常访问这些网站。有时候,网络问题也可能导致请求失败。

    异常处理: 在请求和解析的过程中,添加一些异常处理机制,以便捕获可能发生的异常,例如请求失败、解析失败等。

    下面是一个简单的例子,演示如何添加异常处理:

    i

    mport requests
    from lxml import etree
    
    网址 = "https://www.jkl.com.cn/shop.aspx"
    UA伪装 = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0'}
    响应数据 = requests.get(url=网址, verify=False, headers=UA伪装).content
    解析 = etree.HTML(响应数据)
    城区 = 解析.xpath('//div[@class="infoLis"]//@href ')
    
    forin 城区:
        网址2 = 'https://www.jkl.com.cn/cn/' + 区
        try:
            响应数据1 = requests.get(url=网址2, verify=False, headers=UA伪装).text
            解析1 = etree.HTML(响应数据1)
            店铺名称 = 解析1.xpath('//span[@class="con01"]/text()')
            print(店铺名称)
        except Exception as e:
            print(f"访问 {网址2} 时发生异常:{e}")
    

    如果上面都没有解决问题,可以通过添加异常处理,你可以查看是否有任何异常信息,从而更好地定位问题。

    评论

报告相同问题?

问题事件

  • 修改了问题 11月29日
  • 创建了问题 11月29日

悬赏问题

  • ¥15 kafka无法正常启动(只启动了一瞬间会然后挂了)
  • ¥15 开发一个类似百度网盘的软件,在主页 文件列表点击进入文件夹,在文件夹里面还有文件夹,代码该怎么写?
  • ¥30 使用matlab将观测点聚合成多条目标轨迹
  • ¥15 Workbench中材料库无法更新,如何解决?
  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的