Python中文
首页
教程
问答
标签
搜索
登录
注册
Python只保存一行数据
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<pre><code>def get_user_data(self,start_url): html = self.session.get(url=start_url,headers=self.headers,cookies=self.cookies).content selector = etree.fromstring(html,etree.HTMLParser(encoding='utf-8')) all_user = selector.xpath('//div[contains(@class,"c") and contains(@id,"M")]') for i in all_user: user_id = i.xpath('./div[1]/a[@class="nk"]/@href')[0] content = i.xpath('./div[1]/span[1]')[0] contents = content.xpath('string(.)') times = i.xpath('./div/span[@class="ct"]/text()')[0] if len(i.xpath('./div[3]')): imgages = i.xpath('./div[2]/a/img/@src') praise_num = i.xpath('./div[3]/a[2]/text()') transmit_num = i.xpath('./div[3]/a[3]/text()') elif len(i.xpath('./div[2]')): imgages = i.xpath('./div[2]/a/img/@src') praise_num = i.xpath('./div[2]/a[3]/text()') transmit_num = i.xpath('./div[2]/a[4]/text()') else : imgages = '' praise_num = i.xpath('./div[1]/a[2]/text()') transmit_num = i.xpath('./div[1]/a[3]/text()') try: if re.search('from',times.encode().decode('utf-8')): month_day, time, device = times.split(maxsplit=2) self.data['mobile_phone'] = device else: time,device = times.split(maxsplit=1) self.data['month_day'] = '' self.data['create_time'] = month_day + ' ' + time except Exception as e: print('failure:',e) self.data['crawl_time'] = datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S') self.data['user_id'] = user_id self.data['contents'] = contents.encode().decode('utf-8').replace('\u200b','') self.data['imgages'] = imgages self.data['praise_num'] = praise_num self.data['transmit_num'] = transmit_num with open('a.txt','a',encoding='utf-8') as f: f.write(json.dumps(self.data)+'\n') </code></pre> <p>我试图抓取每一页数据并将其保存到数据中。但我写错了,因为我在“a.txt”中的每一页上只保存了一段数据。那么,如何在“a.txt”中正确地保存每一页数据呢</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>写操作在for循环之外,这就是为什么它只将最后一次迭代数据添加到文件中</p> <pre><code>with open('a.txt','a',encoding='utf-8') as f: f.write(json.dumps(self.data)+'\n') </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
区分轴上的像素大小
8 回答
区分过度拟合与良好预测
9 回答
区分通过POST接收的数据并在Cherrypy中获取
1 回答
区分重写和重载
3 回答
区分金贾二号的类型
1 回答
区别:IF IN和IF==python
7 回答
区别:list.append()与incrementequal?
2 回答
区别:创建在启动wx应用程序时不“阻止”控制台的脚本
7 回答
区别于python中的命令行和CGI
2 回答
区别关系
10 回答
区别是什么APIClient.enforce\ csrf\检查以及APIClient.handler.enforce\ csrf\ u检查
1 回答
区块.draw()未在python空闲模式下工作
6 回答
区块链API调用输出对象名称而不是内容
5 回答
区块链nonce值随负载变化
3 回答
区块链Python语法错误(Snakecoin)
8 回答
区块链不连接到服务器和矿工
10 回答
区块链信息钱包支票支付员
3 回答
区块链和区块链密码错误
10 回答
区块链尝试向Transaction字典添加键/值以创建区块链
9 回答
区域:IOError:[Errno 22]无效模式('w')或filenam
6 回答