无法使用美丽的汤取数据

时间:2015-08-21 14:27:07

标签: python web-scraping beautifulsoup web-crawler mechanize

我试图用Beautiful Soup编写简单的脚本,它可以废弃两个信息并从网站上生成一个SQL文件。

0.5em + 1em + 0.5em + 1em + 0.5em + 1em + 0.5em + 1em = 7em

错误:

  

C:\ Python27> python symtoms.py文件“symtoms.py”,第8行       print link.text           ^ IndentationError:预期缩进块

我只想要一个废弃这些项目和简短描述的脚本,并生成一个只有两个字段“name”& “SUG”。 “name”是那些项目,“sug”是那些描述。

1 个答案:

答案 0 :(得分:0)

缩进在Python中很重要,它用于确定块,例如for循环或块或while循环或函数等。

在你给出的代码中,for循环之后的语句没有在for循环中正确缩进,而for循环在它的主体中需要至少一个语句,我认为你期望for循环下面的行在里面for循环,所以你应该在for循环中缩进它们。

代码 -

for link in op.links():
    print link.text
    print urlparse.urljoin(link.base_url, link.url)
    get = BeautifulSoup(urllib2.urlopen("https://www.mentalhelp.net/symptoms/").read()).findAll('p')
    print get
    print "\n"

虽然我不确定这是否会得到您想要的,但它会解决您当前的错误。

对于只获得classic symptoms及其解构的新要求,您可以使用 -

soup = BeautifulSoup(urllib2.urlopen("https://www.mentalhelp.net/symptoms/").read())
for div in soup.findAll('div',{'id':'page'}):
    for entrydiv in div.findAll('div',{'class':'h4 entry-title'}):
        print(entrydiv.get_text())
        print(entrydiv.next_sibling.get_text())