首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的请求返回一个空列表?

为什么我的请求返回一个空列表?
EN

Stack Overflow用户
提问于 2021-03-09 08:54:26
回答 1查看 382关注 0票数 1

当我使用XPath抓取和解析腾讯公益性的内容时,所有返回的列表都是空的。下面是我的代码(头的信息是隐藏的).And,目标url是https://gongyi.qq.com/succor/project_list.htm#s_tid=75.I,如果有人能帮我解决这个问题,我会很感激的。

代码语言:javascript
运行
复制
import requests
import os
from lxml import etree

if __name__ =='__main__':

    url = 'https://gongyi.qq.com/succor/project_list.htm#s_tid=75'
    headers = {
        'User-Agent': XXX    }
    response = requests.get(url=url,headers=headers)
    page_text = response.text
    tree = etree.HTML(page_text)
    li_list = tree.xpath('//div[@class="pro_main"]//li')
    for li in li_list:
        title = li.xpath('./div[2]/div/a/text()')[0]
        print(title)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-09 11:52:58

因此,这里实际发生的事情是,您只能访问pro_main div中的第一个pro_main,因为所有这些li项及其父项都由JavaScript填充,因此当您用requests.get()刮html时,您的列表将不存在,它将为空!

好消息是,问题中的JS脚本使用API填充数据,以及网站的具体操作方式,您还可以使用实际的API检索这些标题并打印它们。

代码语言:javascript
运行
复制
import requests, json
import os

if __name__ =='__main__':

    url = 'https://ssl.gongyi.qq.com/cgi-bin/WXSearchCGI?ptype=stat&s_status=1&s_tid=75'
    resp = requests.get(url).text
    resp = resp[1:-1] #Result is wrapped in (), so we get rid of those
    jj = json.loads(resp)
    
    for i in jj["plist"]:
        title = i["title"]
        print(title)

您可以通过打印jj来探索API,看看您以后是否需要更多的信息!

如果对你有用,请告诉我!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66543650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档