Python 3的新手,我决定我的第一个项目将是一个网络抓取工具...
我希望进行一次迭代,以获取我第一次需要的所有值。是否有比我完成的方法更简单的方法?
我尝试将其作为一个循环,其中包含三个嵌套循环,只有第一个值最终会出现在数组中。
for card in soup.find_all("div", class_="result"):
for card in card.find_all('a', attrs={'class': 'jobtitle'}):
job_data['Job Title'] = card.getText().strip()
for card in soup.find_all("div", class_="result"):
for card in card.find_all('span', attrs={'class': 'company'}):
job_data['Company'] = card.getText().strip()
for card in soup.find_all("div", class_="result"):
for card in card.find_all('div', attrs={'class': 'summary'}):
job_data['Summary'] = card.getText().strip()
print(job_data)
我只是真的想知道是否有一种更整洁的方式来执行此操作-我当前的代码有效,但它似乎不是最优雅的解决方案...
答案 0 :(得分:0)
由于初始循环是相同的,因此可以在一次外部循环中完成所有三个内部循环。您可能还只想打印一次数据,所以请确保不要缩进该行。
这可以在下面看到:
for card in soup.find_all("div", class_="result"):
for card in card.find_all('a', attrs={'class': 'jobtitle'}):
job_data['Job Title'] = card.getText().strip()
for card in card.find_all('span', attrs={'class': 'company'}):
job_data['Company'] = card.getText().strip()
for card in card.find_all('div', attrs={'class': 'summary'}):
job_data['Summary'] = card.getText().strip()
print(job_data)