答案相对简单。您需要查看您试图擦掉的HTML的源代码。
不是所有的
div
实体有你要找的薪水信息。因此,您运行的一些搜索返回了Python所指的
None
价值实体。不能打印,尽管你可以操纵它。
您需要做的就是检查薪资信息的值是否是可打印的值。
salary = i.find('span', attrs={"class":"salaryText"})
if salary is not None:
print('salary:', salary.text)
整个代码如下:
import urllib.request as urllib
from bs4 import BeautifulSoup
import csv
# empty array for results
results = []
# initialize the Indeed URL to url string
url = 'https://www.indeed.com/jobs?q=software+developer&l=Phoenix,+AZ&jt=fulltime&explvl=entry_level'
soup = BeautifulSoup(urllib.urlopen(url).read(), 'html.parser')
results = soup.find_all('div', attrs={'class': 'jobsearch-SerpJobCard'})
for i in results:
title = i.find('div', attrs={"class":"title"})
print('\ntitle:', title.text.strip())
salary = i.find('span', attrs={"class":"salaryText"})
if salary is not None:
print('salary:', salary.text)
company = i.find('span', attrs={"class":"company"})
print('company:', company.text.strip())