2015-11-19 3 views
2

Ниже мой код и ошибка я получаюPython Ошибка: Ошибка типа: объект «» NoneType не отозвана

import requests 
import BeautifulSoup 
from BeautifulSoup import BeautifulSoup 

url = "http://www.indeed.com/jobs? q=hardware+engineer&l=San+Francisco%2C+CA" 

r = requests.get(url) 
soup = BeautifulSoup(r.content) 

job_titles = soup.find_all("a", {"class", "jobtitle"}) 

print job_titles 

Ошибки я получаю:

Traceback (most recent call last): 
    File "webscraping.py", line 13, in <module> 
    job_titles = soup.find_all("a", {"class", "jobtitle"}) 
TypeError: 'NoneType' object is not callable 

ответ

0

Ниже работает на мне- jobtitle это имя класса h2 не a. Я с bs4 '4.4.0'

import requests 
from bs4 import BeautifulSoup 

url = "http://www.indeed.com/jobs? q=hardware+engineer&l=San+Francisco%2C+CA" 

r = requests.get(url) 
soup = BeautifulSoup(r.content) 

job_titles = soup.find_all("h2", {"class", "jobtitle"}) 

for job in job_titles: 
    print job.text.strip() 

Prints-

Management Associate - Access & Channel Management 
Airline Customer Service Agent (Korean Speaker preferred) SF... 
Event Concierge 
Flight Checker 
Office Automation Clerk 
Administrative Assistant III 
Operations Admin I - CA 
Cashier Receptionist, Grade 3, (Temporary) 
Receptionist/Office Assistant 
Full-Time Center Associate 
1

Это показывает, что soup.find_all Нет. Удостоверьтесь, что это не так. Кроме того, еще одна подозрительной вещь, которую я замечаю в вашем коде является импорт

import BeautifulSoup 
from BeautifulSoup import BeautifulSoup 

Убедитесь, что вы импортировать любого из них и, соответственно, изменить

soup = BeautifulSoup(r.content) 
2

Похоже, вы используете BeautifulSoup 3, который не делает есть find_all, но только findAll.

Используйте findAll, если вы будете использовать BeautifulSoup 3.

Или использовать BeautifulSoup 4 использовать find_all:

from bs4 import BeautifulSoup 
Смежные вопросы