美文网首页
关于baike_spider爬虫 craw 1 : http:/

关于baike_spider爬虫 craw 1 : http:/

作者: RestinYU | 来源:发表于2017-12-14 10:41 被阅读0次

在网上复制了别人baike_spider爬虫的代码,可是每次运行都是出现,只爬取一条就failed的结果

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

craw failed

百度比对别人的代码及综合各大神的建议,发现了如下两个问题:

1.在html_downloader.py文件中

importurllib.request     #不是import urllib 而是import urllib.request

classHtmlDownloader(object):

defdownload(self, url):

ifurlis None:

return None

response = urllib.request.urlopen(url)

ifresponse.getcode() !=200:

return None

returnresponse.read()

2. 是在html_parser.py文件中正则表达式的写法的变化

# coding=utf-8_*_

frombs4importBeautifulSoup

importre

importurllib.parse                    #不是import urllib 而是import urllib.parse  (同理如上1)

classHtmlParser(object):

def_get_new_urls(self, page_url, soup):

new_urls =set()

# /view/123.htm

#links = soup.find_all('a', href=re.compile(r"/view/\d+\.htm"))     #网上代码的正则表达式写法

links = soup.find_all('a',href=re.compile(r"/item/"))                   #正则表达式发生改变后的写法

forlinkinlinks:

new_url = link['href']

new_full_url = urllib.parse.urljoin(page_url, new_url)

new_urls.add(new_full_url)

returnnew_urls

def_get_new_data(self, page_url, soup):

res_data = {}

# url

res_data['url'] = page_url

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

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

#

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

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

returnres_data

defparse(self,page_url,html_cont):

ifpage_urlis None orhtml_contis None:

return

soup = BeautifulSoup(html_cont,'html.parser',from_encoding='utf-8')

new_urls =self._get_new_urls(page_url, soup)

new_data =self._get_new_data(page_url, soup)

returnnew_urls, new_data

更改后,运行无问题

相关文章

  • 关于baike_spider爬虫 craw 1 : http:/

    在网上复制了别人baike_spider爬虫的代码,可是每次运行都是出现,只爬取一条就failed的结果 craw...

  • CrawlSpider介绍

    1.CrawlSpider介绍 Scrapy框架中分两类爬虫 Spider类和CrawlSpider类。 craw...

  • 新建爬虫项目(crawlspider)下载图片

    创建项目:scrapy startproject ang创建爬虫:scrapy genspider -t craw...

  • WebCollector源码分析

    WebCollector 一个java爬虫框架2020年1月25日 https://github.com/Craw...

  • 通用爬虫

    创建项目scrapy startproject 项目名字 创建爬虫scrapy genspider -t craw...

  • 小白学爬虫:网易云音乐歌单(一)

    从零开始写爬虫,初学者的速成指南! 介绍 什么是爬虫? 先看看百度百科的定义: 简单的说网络爬虫(Web craw...

  • 关于爬虫

    关于爬虫 HTTP 协议 HTTP(Hypertext Transfer Protocol)是应用级协议,它适应了...

  • 爬虫类

    selenium,splinter,webbrowser浏览器操作 scrapy爬虫 关于爬取斗鱼弹幕http:/...

  • 爬虫入门基础理论

    转载地址: http://www.csdn.net/article/2015-11-13/2826205关于爬虫内...

  • Scrapy

    0. 基础知识: 1) 搜索引擎爬虫介绍 --> 增量式爬虫和分布式爬虫 http://www.zouxiaoya...

网友评论

      本文标题:关于baike_spider爬虫 craw 1 : http:/

      本文链接:https://www.haomeiwen.com/subject/twvhwxtx.html