python爬虫下来的数据怎么存

发布网友 发布时间:2022-04-21 22:41

我来回答

2个回答

懂视网 时间:2022-04-07 15:27

昨天下班后忽然兴起想写一个爬虫抓抓网页上的东西。花了一个钟简单学习了python的基础语法,然后参照网上的例子自己写了个爬虫。 (推荐学习:Python视频教程)

python数据爬下来保存在本地,一般是文件或数据库中,但是文件形式相比要更加简单,如果只是自己写爬虫玩,可以用文件形式来保存数据。

#coding=utf-8
import urllib.request
import re
import os
 
'''
Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据
urlopen 方法用来打开一个url
read方法 用于读取Url上的数据
'''
 
def getHtml(url):
 page = urllib.request.urlopen(url);
 html = page.read();
 return html;
 
def getImg(html):
 imglist = re.findall('img src="(http.*?)"',html)
 return imglist
 
html = getHtml("https://www.zhihu.com/question/34378366").decode("utf-8");
imagesUrl = getImg(html);
 
if os.path.exists("D:/imags") == False:
 os.mkdir("D:/imags");
 
count = 0;
for url in imagesUrl:
 print(url)
 if(url.find('.') != -1):
 name = url[url.find('.',len(url) - 5):];
 bytes = urllib.request.urlopen(url);
 f = open("D:/imags/"+str(count)+name, 'wb');
 f.write(bytes.read());
 f.flush();
 f.close();
 count+=1;

经测试,基本功能还是可以实现的。花的较多的时间就是正则匹配哪里,因为自己对正则表达式也不是非常熟悉。所以还是花了点时间。

注:上面的程序基于 python 3.5。python3 和 python2 还是有些区别的。我刚开始看基础语法的时候就栽了一些坑里。

热心网友 时间:2022-04-07 12:35

如果是存到mysql中,可以设置为字段类型为text。
mysql中text 最大长度为65,535(2的16次方–1)字符的TEXT列。
如果你觉得text长度不够,可以选择
MEDIUMTEXT最大长度为16,777,215。
LONGTEXT最大长度为4,294,967,295
Text主要是用来存放非二进制的文本,如论坛帖子,题目,或者百度知道的问题和回答之类。
需要弄清楚的是text 和 char varchar blob这几种类型的区别

如果真的特别大,就用python在某一路径下建一个文件,把内容write到文件中就可以了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com