如何修复索引超出范围?

时间:2021-04-08 22:02:42

标签: python scrape

    import requests
from bs4 import BeautifulSoup
import csv
from itertools import zip_longest

result = requests.get("https://wuzzuf.net/search/jobs/?a=hpb%7Cspbg&q=data")
src = result.content
soup = BeautifulSoup(src, "lxml")

Job_title = []
Firm_name = []

Job_titles = soup.find_all("a", {"class":"css-nn640c"})
Firm_names = soup.find_all("a", {"class":"css-17s97q8"})

for i in range(len(Job_titles)):
    Job_title.append(Job_titles[i].text)
    Firm_name.append(Firm_names[i].text)
    Filelist = [Job_title, Firm_name]
    Exported = zip_longest(*Filelist)


with open(r"C:\Users\****\Desktop\python\mydata.csv", "w") as myfile:
    wr = csv.writer(myfile)
    wr.writerow("Job title", "Company name")
    wr.writerows(Exported)

我的代码有什么问题,它一直在生成这个错误”文件“C:\Users****\PycharmProjects\pythonProject\Test1\Scrape.py”,第 18 行,在 Firm_name.append(Firm_names[i].text) IndexError:列表索引超出范围 找到解决方案了,谢谢你的帮助

3 个答案:

答案 0 :(得分:1)

for 循环基于 Job_titles 的长度而不是 Firm_names。 Job_titles 的元素可能比 Firm_names 的元素多。

答案 1 :(得分:1)

您面临的错误与 Firm_name 的大小有关,因为它比您在 Job_title 中使用的要小

答案 2 :(得分:0)

显示从 Beautiful Soup 输出的 job_titles 和 Firm_names 列表的长度。 Firm_names 列表的元素似乎比 job_titles 少。 因此不能通过相同的索引相互引用,因为在某些时候较短的列表将超出范围。

相关问题