用python实现网络爬虫代码_第一个网络爬虫-抓取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()

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值