鱼C论坛

 找回密码
 立即注册
查看: 538|回复: 9

爬取的数据存储不到txt文件中了

[复制链接]
发表于 2018-8-29 10:52:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
从网上爬取的评论存储不到TXT文件中了,老报错,求大神:
import requests
import csv
import multiprocessing
from bs4 import BeautifulSoup
from requests.exceptions import  RequestException
from multiprocessing import Pool

def get_comments(url):
    try:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
        }
        response=requests.get(url,headers=headers)
        response.encoding = 'gbk'
        if response.status_code==200:
            return response.text
        print('请求评论错误')
        return None
    except RequestException:
        return None


def parse_comments(html):
    soup = BeautifulSoup(html,'lxml')
    items = soup.find_all(class_='comment-item')
    for item in items:
        comments = item.select('.commenttext')
        if comments:
            comments = comments[0].text.replace('\n','').replace('\xa0','').replace('\u3000','').replace('\r','').replace(' ','')
        data={
            'comments': comments
        }
        yield data

def save_to_file(content):
    try:
        with codecs.open(r'C:\Users\lenovo\Desktop\数据\白沙comment.txt', 'a', encoding='utf-8') as f:
            for i in content:
                f.write(i.strip() + '\r\n')
    except Exception:
        print('存储到文件失败')

def main(page):
    url = 'http://www.yanyue.cn/product/comments/15?paramsend=postget&productid=15¶msend=postget&page_offset='+str(page)
    html=get_comments(url)
    for item in parse_comments(html):
        print(item)
        save_to_file(item)

if __name__=='__main__':
    for i in range(53):
        main(page=i+1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-29 11:13:34 | 显示全部楼层
虽然我没有跑你的程序,不过感觉你往C盘存数据,是不是需要管理员权限啊?你试试吧,我之前也遇到过没有开管理员权限无法保存的问题,或者你把保存路径改一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-29 11:15:53 | 显示全部楼层
呵123 发表于 2018-8-29 11:13
虽然我没有跑你的程序,不过感觉你往C盘存数据,是不是需要管理员权限啊?你试试吧,我之前也遇到过没有开 ...

我试了,也不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-29 11:16:07 | 显示全部楼层
def save_to_file(content):
    try:
        with open(r'C:\Users\lenovo\Desktop\数据\白沙comment.txt', 'a+', encoding='utf-8') as f:
                f.write(json.dumps(content) + '\r\n')
    except:
        print('存储到文件失败')   把你的save_to_file 改一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-29 11:17:09 | 显示全部楼层

那你把路径的中文改一下吧,也可能是这个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-29 11:22:37 | 显示全部楼层
新人 发表于 2018-8-29 11:16
def save_to_file(content):
    try:
        with open(r'C:%users\lenovo\Desktop\数据\白沙comment.t ...

不行呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-29 11:25:07 | 显示全部楼层
f.write(json.dumps(content,ensure_ascii=False) + '\r\n')  json模块要导入的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-29 11:27:19 | 显示全部楼层
{"comments": "和天下,非常纯。烟吐出来比一般烟更多。空心过滤嘴。软金砂口感的加强版。女人抽还行!"}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-29 11:32:29 | 显示全部楼层
新人 发表于 2018-8-29 11:25
f.write(json.dumps(content,ensure_ascii=False) + '\r\n')  json模块要导入的

但是乱码的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-29 11:33:31 | 显示全部楼层

好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 18:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表