无法使用漂亮的汤获取数据
can't fetch the data using beautiful soup
我正在尝试使用 Beautiful Soup 编写简单的脚本,它可以仅删除两个信息并从网站生成一个 SQL 文件。
import mechanize
import urlparse
from bs4 import BeautifulSoup
op = mechanize.Browser()
op.open("https://www.mentalhelp.net/symptoms/")
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"
错误:
C:\Python27>python symtoms.py File "symtoms.py", line 8
print link.text
^ IndentationError: expected an indented block
我只想要一个脚本来废弃这些项目和简短描述并生成一个 SQL 文件,该文件只有两个字段 "name" 和 "sug"。 "name" 是那些项目,"sug" 是那些描述。
缩进在 Python 中很重要,它用于确定块,如 for 循环或 if 块或 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())
我正在尝试使用 Beautiful Soup 编写简单的脚本,它可以仅删除两个信息并从网站生成一个 SQL 文件。
import mechanize
import urlparse
from bs4 import BeautifulSoup
op = mechanize.Browser()
op.open("https://www.mentalhelp.net/symptoms/")
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"
错误:
C:\Python27>python symtoms.py File "symtoms.py", line 8 print link.text ^ IndentationError: expected an indented block
我只想要一个脚本来废弃这些项目和简短描述并生成一个 SQL 文件,该文件只有两个字段 "name" 和 "sug"。 "name" 是那些项目,"sug" 是那些描述。
缩进在 Python 中很重要,它用于确定块,如 for 循环或 if 块或 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())