资讯专栏INFORMATION COLUMN

Python 爬虫数据写入csv文件中文乱码解决以及天眼查爬虫数据写入csv

zone / 1272人阅读

摘要:爬虫数据写入文件中文乱码,用在中打开文件没有问题,但是用打开却出现了问题,以下为解决方法。

python爬虫数据写入csv文件中文乱码,用’utf-8‘在pycharm中打开文件没有问题,但是用excel打开却出现了问题,以下为解决方法。
(最近在练习爬虫,这个博文是对自己学习的记录和分享,如果有问题,非常感谢各路大佬指出!!!)

for r in result:        r_lis=[]                                 #方法二:将爬到的内容储存在csv文件中        r_lis.append(r.text)        with open("company.csv","a",newline="",encoding="utf-8-sig") as csvfile:            spamwriter=csv.writer(csvfile, delimiter=",")            spamwriter.writerow(r_lis)

在with自开合那里加入newline="",encoding="utf-8-sig"是关键

以下是天眼查的爬虫

import requestsfrom bs4 import BeautifulSoupfrom urllib.parse import quoteimport csv   #公司信息以csv的格式存储看起来更美观# key="华为"      #从查询一个company开始,加for循环,查询多个企业lis=["华大基因","知乎","中国国家地理杂志社","中山大学"]for li in lis:    url="https://www.tianyancha.com/search?key="+quote(li)    #外部的url,进入要查询的企业的页面    headers={    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36 Edg/93.0.961.52",    "Cookie":"aliyungf_tc=dcee015d38cbc96ad677b845beb17fecf55dfe7bf358e85e3369cb76604d9baa; acw_tc=76b20f8416320655286472268e3b9f535aea9900bb46a056331a772cc85ae5; csrfToken=ZguchyQQdbrVckAuPOspK7Au; jsid=SEO-BING-ALL-SY-000001; TYCID=c06be740195e11ec9d547d348b283d0a; ssuid=5077711456; sajssdk_2015_cross_new_user=1; bannerFlag=true; Hm_lvt_e92c8d65d92d534b0fc290df538b4758=1632065532; _ga=GA1.2.1408096384.1632065532; _gid=GA1.2.1583561769.1632065532; searchSessionId=1632065541.64432166; relatedHumanSearchGraphId=17066311; relatedHumanSearchGraphId.sig=TwOcKyCjpeHTjV7s49eE4L_3pHpB94avftKmZJek8gk; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2218438709046%22%2C%22first_id%22%3A%2217bfeafae43ba9-005e2376b1979-57341f44-1382400-17bfeafae44afa%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22%24device_id%22%3A%2217bfeafae43ba9-005e2376b1979-57341f44-1382400-17bfeafae44afa%22%7D; tyc-user-info={%22state%22:%220%22%2C%22vipManager%22:%220%22%2C%22mobile%22:%2218438709046%22}; tyc-user-info-save-time=1632066453345; auth_token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxODQzODcwOTA0NiIsImlhdCI6MTYzMjA2NjQ1MiwiZXhwIjoxNjYzNjAyNDUyfQ.XYcBGbzr1qThhAZp9exmEKjWg1Co6_cwyZgmfCNO-9Nrp_KSyyqAr--UnxUhLaaX7x6jNmoX3SACJDL31RocNA; tyc-user-phone=%255B%252218438709046%2522%255D; Hm_lpvt_e92c8d65d92d534b0fc290df538b4758=1632066573"    }                                         #这里的Cookie需要是用户登陆后的才可以用,否则需要输入验证码,所以先登陆,再获取Cookie    html=requests.get(url,headers=headers)    soup=BeautifulSoup(html.text,"html.parser")    innerUrl=soup.select_one("a.name")["href"]       #只需要的一个所以用select_one()来爬取一个内部的url#获取内部url即此处的href    # print("获取内部URL:", innerUrl)    innerHtml=requests.get(innerUrl,headers=headers)  #这里的headers不需要变    soup=BeautifulSoup(innerHtml.text,"html.parser")    result=soup.select(".table.-striped-col tbody tr td")    for r in result:    #     with open("company.text","a",encoding="utf8") as f:      #方法一:将爬到的内容存储在text文本中    #         f.write(r.text+"/n")    # with open("company.text","a",encoding="utf8") as f:    #     f.write("/n")        r_lis=[]                                             #方法二:将爬到的内容储存在csv文件中        r_lis.append(r.text)        with open("company.csv","a",newline="",encoding="utf-8-sig") as csvfile:            spamwriter=csv.writer(csvfile, delimiter=",")            spamwriter.writerow(r_lis)print("已完成!")

这是本人的第一篇博文,这些内容主要是对我自己学习爬虫的记录和分享,如果代码中有什么问题的感谢各路大佬指正!!!

 

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/119993.html

相关文章

  • Python3网络爬虫实战---31、数据存储:文件存储

    摘要:如果该文件已存在,文件指针将会放在文件的结尾。运行结果以上是读取文件的方法。为了输出中文,我们还需要指定一个参数为,另外规定文件输出的编码。 上一篇文章:Python3网络爬虫实战---30、解析库的使用:PyQuery下一篇文章:Python3网络爬虫实战---32、数据存储:关系型数据库存储:MySQL 我们用解析器解析出数据之后,接下来的一步就是对数据进行存储了,保存的形式可以...

    dreamans 评论0 收藏0
  • 一次爬虫实践记录

    摘要:在和伟锋探讨的时候,我突然想到了可以用爬虫的手段,来将数据中心的数据全部爬取出来。这里做一个技术记录,中间涉及到的知识点包括如何通过中的,以及维持登陆状态,以爬取不同的需要登陆以后才能查看的网页。 前言说明: 公司在2017年3月的时候开发过一个「数据中心」,是将有赞的用户和订单信息通过API拉取到自己开发的网站上,再结合我们自己和用户沟通的信息,组成一个简单的用户管理中心。数据中心虽...

    hzx 评论0 收藏0
  • 多线程+代理池爬取天天基金网、股票数据(无需使用爬虫框架)

    摘要:本次使用天天基金网进行爬虫,该网站具有反爬机制,同时数量足够大,多线程效果较为明显。技术路线代理池多线程爬虫与反爬编写思路首先,开始分析天天基金网的一些数据。一旦使用多线程,则需要考虑到数据的读写顺序问题。 @[TOC] 简介 提到爬虫,大部分人都会想到使用Scrapy工具,但是仅仅停留在会使用的阶段。为了增加对爬虫机制的理解,我们可以手动实现多线程的爬虫过程,同时,引入IP代理池进行...

    jaysun 评论0 收藏0
  • 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0
  • 自制简单的诗歌搜索系统

    摘要:项目简介本文将介绍一个笔者自己的项目自制简单的诗歌搜索系统。该项目使用的模块为其中,模块和模块用来制作爬虫,爬取网上的诗歌。 项目简介   本文将介绍一个笔者自己的项目:自制简单的诗歌搜索系统。该系统主要的实现功能如下:指定一个关键词,检索出包含这个关键词的诗歌,比如关键词为白云,则检索出的诗歌可以为王维的《送别》,内容为下马饮君酒,问君何所之?君言不得意,归卧南山陲。但去莫复问,白云...

    SegmentFault 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<