鱼C论坛

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

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

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

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

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

x
  1. import requests
  2. import re
  3. import json
  4. from bs4 import BeautifulSoup
  5. from requests.exceptions import  RequestException

  6. def get_one_page(url):
  7.     headers={
  8.         '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'
  9.     }
  10.     try:
  11.         response=requests.get(url,headers=headers)
  12.         if response.status_code==200:
  13.             return response.text
  14.         print('请求错误')
  15.         return None
  16.     except RequestException:
  17.         return None

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

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

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

  37. if __name__=='__main__':
  38.     for i in range(10):
  39.         main(offset=i*10)
复制代码




这是我爬取的猫眼榜单的TOP100,但为什么不能存储到txt文件中,txt文件中都是乱码的,求大神指教
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-8-2 18:57:30 | 显示全部楼层
把32行的,encoding='utf-8'去掉。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 21:01:57 | 显示全部楼层
不知道你的什么版本 怎么乱码法 我用的是正则表达式没有乱码
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

如下:
null
null
null
null
null
null
null
null
null
null
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

你那个不是乱码 是没有返回值   需要进行yield返回 而不是用print(items) 你可以去github看下别的代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

那我应该怎么改
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-3 09:34:09 | 显示全部楼层
这个都被爬烂了 网上都很多例子 QQ图片20180803093139.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

没办法,刚学,还是个小白
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-15 09:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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