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

博主遇到爬虫问题,尝试抓取多个百度百科页面时,虽然URL有效,但输出没有HTML文件,且提示缺少'data'参数。解析了parser和outputer代码,求助于如何解决这一缺失数据导致的collect_data方法报错。
摘要由CSDN通过智能技术生成

源自:7-7 开始运行爬虫和爬取结果展示

爬虫可爬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

#

Python

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()

#

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('')

fout.write("

")

fout.write('

')

fout.write('

for data in self.datas:

fout.write('

')

fout.write('

%s'% data['url'])

fout.write('

%s'% data['title'].encode('utf-8'))

fout.write('

%s'% data['summary'].encode('utf-8'))

fout.write('

')

fout.write('

')

fout.write('')

fout.write('')

fout.close()

提问者:小宝君等期待

2016-08-19 11:59

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值