У меня возникли проблемы с очисткой определенных полей на веб-страницах. У меня есть код ниже, который хорошо выполняет 1-й два для циклов, но я затрудняюсь с последним циклом цикла.Скребок с BeautifulSoup
from bs4 import BeautifulSoup
import urllib2
url="https://www.mturk.com/mturk/findhits?match=false"
page=urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
requesters=soup.findAll('span',{'class':'requesterIdentity'})
for eachrequester in requesters:
print "Requester Name: "+eachrequester.string
rewards=soup.findAll('span',{'class':'reward'})
for eachreward in rewards:
print "Reward: "+eachreward.string
hitnames=soup.findAll('a',{'class':'capsulelink'}) #THE ISSUE IS IN THESE 3 LINES
for eachhitname in hitnames:
print "Hit Name: "+eachhitname.string
в настоящее время код выводит:
Requester Name: Andrew Ryan
Requester Name: Vishwanath Kumar
Requester Name: rohzit0d
Requester Name: Jon Brelig
Requester Name: Tagasauris
Requester Name: Tagasauris
Requester Name: Tagasauris
Requester Name: CopyText Inc.
Requester Name: Tagasauris
Requester Name: Amazon Requester Inc.
Reward: $0.24
Reward: $0.03
Reward: $0.00
Reward: $0.05
Reward: $0.04
Reward: $0.02
Reward: $0.02
Reward: $0.01
Reward: $0.04
Reward: $0.00
Traceback (most recent call last):
File "C:/Users/admin/Desktop/pythonimageret/hitgwt.py", line 19, in <module>
print "Hit Name: "+eachhitname.string
TypeError: cannot concatenate 'str' and 'NoneType' objects
Я понимаю, что сценарий не может найти содержимое HTML здесь. HTML выглядит следующим образом:
<a class="capsulelink" href="#" id="capsule6-0">
Indoors or Out?
<span class="tags"></span>
</a>
Я думаю, это потому, что href="#" id="capsule6-0"
в между class=""
и >
Спасибо большое, отлично, и я понимаю, почему. (sry, я не могу продвигать, у меня пока нет хорошей репутации) – Rorschach