资讯专栏INFORMATION COLUMN

第一个网络爬虫-抓取CodeSnippet代码片段

xcold / 1211人阅读

摘要:抓取代码片段目标抓取中的代码片段分析代码分享你的世界代码块发布代码片段片段列表一个线程如果是个人英雄主义,那么多线程就是集体主义,你不再是一个独行侠,而是一个指挥家。

CodeSnippet 抓取代码片段 目标

抓取CodeSnippet中的代码片段

分析

代码

    
  •                     
                        

  • 一个线程如果是个人英雄主义,那么多线程就是集体主义,你不再是一个独行侠,而是一个指挥家。
  • 共有 {15106} 个代码片段

我们想要抓取的内容在为 li class="con-code bbor" 所以 BeautifulSoup find()方法获取到该标签然后获取其文本内容

准备

准备我们爬虫比用的两个模块

from urllib2 import urlopen

from bs4 import BeautifulSoup
编写抓取代码
# 抓取http://www.codesnippet.cn/index.html 中的代码片段

def GrapIndex():
    html = "http://www.codesnippet.cn/index.html"
    bsObj = BeautifulSoup(urlopen(html), "html.parser")
    return bsObj.find("li",  {"class":"con-code bbor"}).get_text()

当我们抓取到我们想要的数据之后接下来要做的就是把数据写到数据库里,由于我们现在抓取数据简单,所以只写文件即可!

def SaveResult():
    codeFile=open("code.txt", "a") # 追加
    for list in GrapIndex():
        codeFile.write(list)
    codeFile.close()
当我们在写文件的时候出现了以下错误,而下面这个错误的造成原因则是由于python2.7是基于ascii去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinal not in range(128))

UnicodeEncodeError: "ascii" codec can"t encode character u"u751f" in position 0: ordinal not in range(128)

分析

python2.7是基于ascii去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinal not in range(128))

解决办法
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
完整代码展示
from urllib2 import urlopen

from bs4 import BeautifulSoup

import os
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

def GrapIndex():
    html = "http://www.codesnippet.cn/index.html"
    bsObj = BeautifulSoup(urlopen(html), "html.parser")
    return bsObj.find("li",  {"class":"con-code bbor"}).get_text()

def SaveResult():
    codeFile=open("code.txt", "a")
    for list in GrapIndex():
        codeFile.write(list)
    codeFile.close()

if __name__ == "__main__":
    for i in range(0,9):
        SaveResult()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38298.html

相关文章

  • 从0-1打造最强性能Scrapy爬虫集群

    摘要:包括爬虫编写爬虫避禁动态网页数据抓取部署分布式爬虫系统监测共六个内容,结合实际定向抓取腾讯新闻数据,通过测试检验系统性能。 1 项目介绍 本项目的主要内容是分布式网络新闻抓取系统设计与实现。主要有以下几个部分来介绍: (1)深入分析网络新闻爬虫的特点,设计了分布式网络新闻抓取系统爬取策略、抓取字段、动态网页抓取方法、分布式结构、系统监测和数据存储六个关键功能。 (2)结合程序代码分解说...

    vincent_xyb 评论0 收藏0
  • 基于 Electron 的爬虫框架 Nightmare

    摘要:话题精华即为知乎的高票回答。下面的项目中还包含了另外一个爬取的知乎的动态。 作者:William本文为原创文章,转载请注明作者及出处 Electron 可以让你使用纯 JavaScript 调用 Chrome 丰富的原生的接口来创造桌面应用。你可以把它看作一个专注于桌面应用的 Node.js 的变体,而不是 Web 服务器。其基于浏览器的应用方式可以极方便的做各种响应式的交互,接下来介...

    Harriet666 评论0 收藏0
  • 爬虫入门

    摘要:通用网络爬虫通用网络爬虫又称全网爬虫,爬取对象从一些种子扩充到整个。为提高工作效率,通用网络爬虫会采取一定的爬取策略。介绍是一个国人编写的强大的网络爬虫系统并带有强大的。 爬虫 简单的说网络爬虫(Web crawler)也叫做网络铲(Web scraper)、网络蜘蛛(Web spider),其行为一般是先爬到对应的网页上,再把需要的信息铲下来。 分类 网络爬虫按照系统结构和实现技术,...

    defcon 评论0 收藏0
  • 爬虫入门

    摘要:通用网络爬虫通用网络爬虫又称全网爬虫,爬取对象从一些种子扩充到整个。为提高工作效率,通用网络爬虫会采取一定的爬取策略。介绍是一个国人编写的强大的网络爬虫系统并带有强大的。 爬虫 简单的说网络爬虫(Web crawler)也叫做网络铲(Web scraper)、网络蜘蛛(Web spider),其行为一般是先爬到对应的网页上,再把需要的信息铲下来。 分类 网络爬虫按照系统结构和实现技术,...

    Invoker 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<