我有一组网址,我在名单中列出了这些网址(例如http://www.amazon.com/b/ref=s9_al_bw_brwse_a_v?_encoding=UTF8&node=9097393011&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-4&pf_rd_r=10RXCP9TZPW3BP73EKHA&pf_rd_t=101&pf_rd_p=1818119462&pf_rd_i=2858778011
)。在此网址页面的底部,有每个类别的页数。
有一个span元素,我试图返回一个url.But它正在返回NoneType error
到目前为止我尝试过的代码
for links in full_links:
mech=Browser()
mech.set_handle_robots(False)
mech.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
url=links
page=mech.open(url)
html=page.read()
soup=BeautifulSoup(html)
no_pages = soup.find('div',id="pagn")
a=no_pages.find('span',{'class':'pagnLink'})
for aes in a:
print aes.text
for a in elm.findAll('a'):
link='http://www.amazon.com'+a['href']
print link
答案 0 :(得分:2)
您未能包含完整的回溯,但可能是soup.find('div')
调用返回None
。对于该页面,您尝试查找的元素是而不是。
如果找不到元素,Element.find()
将返回None
,并且尝试使用该None
值的后续行将失败。在这种情况下,no_pages
为None
,因此no_pages.find()
失败。
对于像这样的元素搜索,使用CSS selectors 更容易:
for page_link in soup.select('div#pagn span.pagnLink a[href]'):
link = 'http://www.amazon.com' + page_link['href']
print link
这将找到<div id="pagn">
- &gt;中的所有链接。 <span class="pagnLink>
元素树,前提是它们具有href
属性。
如果div
或span
不存在,此搜索将返回空循环。