目标抓取CodeSnippet中的代码片段代码片段 分析DOM结构 我们想要抓取的内容在为
准备准备我们爬虫比用的两个模块 from urllib2 import urlopenfrom bs4 import BeautifulSoup 编写抓取代码# 抓取http://www./index.html 中的代码片段def GrapIndex(): html = 'http://www./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))
分析
import sysreload(sys)sys.setdefaultencoding('utf-8') 完整代码展示from urllib2 import urlopenfrom bs4 import BeautifulSoupimport osimport sysreload(sys)sys.setdefaultencoding('utf-8')def GrapIndex(): html = 'http://www./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() |
|