鱼C论坛

 找回密码
 立即注册
查看: 596|回复: 8

Python爬虫存储到txt文件中是乱码的

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

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

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

x
import requests
import re
import json
from bs4 import BeautifulSoup
from requests.exceptions import  RequestException

def get_one_page(url):
    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'
    }
    try:
        response=requests.get(url,headers=headers)
        if response.status_code==200:
            return response.text
        print('请求错误')
        return None
    except RequestException:
        return None

def parse_one_page(html):
    soup=BeautifulSoup(html,'lxml')
    items={}
    for d in range(10):
        items['排名']=soup.select('.board-index')[d].text
        items['片名']=soup.select('.name')[d].text
        items['主演']=soup.select('.star')[d].text.strip()[3:]
        items['上映时间']=soup.select('.releasetime')[d].text.strip()[5:]
        items['评分']=soup.select('.integer')[d].text+soup.select('.fraction')[d].text
        print(items)

def write_to_file(content):
    with open(r'C:\Users\lenovo\Desktop\爬虫\猫眼\猫眼TOP100(BS).txt','a',encoding='utf-8') as f:
        f.write(json.dumps(content,ensure_ascii=False)+'\n')
        f.close()

def main(offset):
    url='https://maoyan.com/board/4?offset='+str(offset)
    html=get_one_page(url)
    items=parse_one_page(html)
    write_to_file(items)

if __name__=='__main__':
    for i in range(10):
        main(offset=i*10)



这是我爬取的猫眼榜单的TOP100,但为什么不能存储到txt文件中,txt文件中都是乱码的,求大神指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-2 18:57:30 | 显示全部楼层
把32行的,encoding='utf-8'去掉。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 21:01:57 | 显示全部楼层
不知道你的什么版本 怎么乱码法 我用的是正则表达式没有乱码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-2 22:57:39 | 显示全部楼层
无符号整形 发表于 2018-8-2 18:57
把32行的,encoding='utf-8'去掉。

主要是他就会搞成这样的

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

使用道具 举报

 楼主| 发表于 2018-8-2 22:58:10 | 显示全部楼层
万事笔通 发表于 2018-8-2 21:01
不知道你的什么版本 怎么乱码法 我用的是正则表达式没有乱码

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

使用道具 举报

发表于 2018-8-2 23:13:25 | 显示全部楼层

你那个不是乱码 是没有返回值   需要进行yield返回 而不是用print(items) 你可以去github看下别的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-3 09:02:20 | 显示全部楼层
万事笔通 发表于 2018-8-2 23:13
你那个不是乱码 是没有返回值   需要进行yield返回 而不是用print(items) 你可以去github看下别的代码

那我应该怎么改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-3 09:34:09 | 显示全部楼层
这个都被爬烂了 网上都很多例子 QQ图片20180803093139.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-3 11:12:59 | 显示全部楼层
万事笔通 发表于 2018-8-3 09:34
这个都被爬烂了 网上都很多例子

没办法,刚学,还是个小白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-6 01:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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