为了账号安全,请及时绑定邮箱和手机立即绑定

爬虫可爬url但没有html文件输出,也不能正常工作?

craw 1:http://baike.baidu.com/view/21087.htm

craw failed collect_data() missing 1 required positional argument: 'data'

craw 1:http://baike.baidu.com/view/5078.htm

craw failed collect_data() missing 1 required positional argument: 'data'

craw 1:http://baike.baidu.com/view/113188.htm

craw failed collect_data() missing 1 required positional argument: 'data'

craw 1:http://baike.baidu.com/view/1020193.htm

craw failed collect_data() missing 1 required positional argument: 'data'

craw 1:http://baike.baidu.com/view/1483082.htm

craw failed collect_data() missing 1 required positional argument: 'data'

craw 1:http://baike.baidu.com/view/2753125.htm

craw failed collect_data() missing 1 required positional argument: 'data'

craw 1:http://baike.baidu.com/view/309208.htm



craw failed collect_data() missing 1 required positional argument: 'data' 求解啊,查了一遍,代码没什么问题啊!

parser代码:


   def _get_new_data(self, page_url, soup):

       res_data = {}

       

       res_data['url'] = page_url

       #<dd class="lemmaWgt-lemmaTitle-title"><h1>Python</h1>

       title_node = soup.find('dd',class_="lemmaWgt-lemmaTitle-title")

       if title_node == None:

           res_data['title'] =''

           res_data['summary'] =''

           return res_data

       else:

           title_node = title_node.find("h1")

           res_data['title'] = title_node.get_text()

       #<div class="lemma-summary" label-module="lemmaSummary">

       summary_node = soup.find('div',class_="lemma-summary")

       if summary_node == None:

           res_data['summary'] = ''

       else:

           res_data['summary'] = summary_node.get_text()

           

       return res_data

outputer:

class HtmlOutputer(object):

   def __init__(self):

       self.datas = []

       

   def collect_data(self,data):

       if data is None:

           return 

       self.datas.append(data)

      

   def output_html(self):

       fout = open('output.html','w',encoding = 'utf-8')

       

       fout.write('<html>')

       fout.write("<head><meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\"></head>")

       fout.write('<body>')

       fout.write('<table>')

       for data in self.datas:

           fout.write('<tr>')

           fout.write('<td>%s</td>'% data['url'])

           fout.write('<td>%s</td>'% data['title'].encode('utf-8'))

           fout.write('<td>%s</td>'% data['summary'].encode('utf-8'))

           fout.write('</tr>')

           

       fout.write('</table>')

       fout.write('</body>')

       fout.write('</html>')

       fout.close()


正在回答

3 回答

同问啊

0 回复 有任何疑惑可以回复我~

同问,楼主解决了吗

0 回复 有任何疑惑可以回复我~

异常内容是:craw failed collect_data() missing 1 required positional argument: 'data'

collect_data()函数缺少一个必须的位置参数data

检查一下调用collect_data的地方spider_main.py中self.outputer.collect_data(new_data)忘记填参数了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python开发简单爬虫
  • 参与学习       227670    人
  • 解答问题       1219    个

本教程带您解开python爬虫这门神奇技术的面纱

进入课程

爬虫可爬url但没有html文件输出,也不能正常工作?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信