你的小玉兰 2022-03-30 17:18 采纳率: 0%
浏览 73

python总是返回空列表,找不到什么原因

-- coding: utf-8 --

import json
import requests
from lxml import html
etree = html.etree

def baidu_request(keyword):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55',
'Accept': 'image/webp,image/apng,image/svg+xml,image/,/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'Connection': 'keep-alive',
'Content - Type': 'text / html;charset = utf - 8',
}
response = requests.get('https://www.baidu.com/s?wd={}&lm=1%27.format(keyword), headers=headers)

r = response.text
html = etree.HTML(r, etree.HTMLParser())
r1 = html.xpath('//h3')
r2 = html.xpath('//*[@class="c-abstract"]')
r3 = html.xpath('//*[@class="t"]/a/@href')

for i in range(5):
    r11 = r1[i].xpath('string(.)')
    r22 = r2[i].xpath('string(.)')
    r33 = r3[i]
    with open('test.txt', 'a', encoding='utf-8') as c:
        c.write(json.dumps(r11, ensure_ascii=False) + '\n')
        c.write(json.dumps(r22, ensure_ascii=False) + '\n')
        c.write(json.dumps(r33, ensure_ascii=False) + '\n')
    print(r11, '\n')
    print('------------------------')
    print(r22, '\n')
    print(r33, '\n')

if name == 'main':
baidu_request("安全事件")

  • 写回答

1条回答 默认 最新

  • 於黾 2022-03-30 17:25
    关注

    你函数没有return,return在哪呢
    你这不是返回空列表的问题,根本是返回None吧

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月30日

悬赏问题

  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥60 如何批量获取json的url
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析