python的爬取html网页的疑问
 import requests
import xml.etree.ElementTree as ET
from xml.parsers.expat import ParserCreate

class DefaultSaxHandler(object):
 def __init__(self,provinces):
        self.provinces =provinces
 def  start_element(self,name,attrs):    
      pass
 def  end_element(self,name):
      pass
 def  char_data(self,text):
        self.provinces.append((text))

def get_provinces_entry(url):
  content = requests.get(url).content.decode('gb2312')
  start = content.find('<div class="area">')
  end = content.find('<div id="head-login" class="right login">')
  content = content[start:end].strip()
  provinces = []
  handler = DefaultSaxHandler(provinces)
  parser = ParserCreate()
  parser.StartElementHandler = handler.start_element
  parser.EndElementHandler = handler.end_element
  parser.CharacterDataHandler = handler.char_data
  parser.parse(content)
  return provinces

provinces = get_provinces_entry('https://www.sohu.com/a/134099257_654351')
print(provinces)

新手,刚写爬虫,但是一直显示错误,不知道哪里错了,怎么改正

3个回答

你的代码缩进可能有问题, import requests self.provinces =provinces 都要向前进一个占位

qq_40805263
qq_40805263 好像不行啊
大约一年之前 回复

如果缩进是没有问题的话,倒数第5行有问题parse改成大写parser.Parse(content)就可以了

倒是把错误一起贴出来啊?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问