csv - python多列存取爬蟲網頁?
问题描述
爬虫抓取的资料想分列存取在tsv上,试过很多方式都没有办法成功存存取成两列资讯。想存取为数字爬取的资料一列,底下类型在第二列
from urllib.request import urlopenfrom bs4 import BeautifulSoupimport reimport csvhtml = urlopen('http://www.app12345.com/?area=tw&store=Apple%20Store')bs0bj = BeautifulSoup (html)def GPname(): GPnameList = bs0bj.find_all('dd',{'class':re.compile('ddappname')}) str = ’’ for name in GPnameList:str += name.get_text()str += ’n’print(name.get_text()) return strdef GPcompany(): GPcompanyname = bs0bj.find_all('dd',{'style':re.compile('color')}) str = ’’ for cpa in GPcompanyname:str += cpa.get_text()str += ’n’print(cpa.get_text()) return strwith open(’0217.tsv’,’w’,newline=’’,encoding=’utf-8’) as f: f.write(GPname()) f.write(GPcompany())f.close()
可能对zip不熟悉,存取下来之后变成一个字一格也找到这篇参考,但怎么尝试都没有办法成功https://segmentfault.com/q/10...
问题解答
回答1:写csv文件简单点 你的结构数据要成这样 [['1. 東森新聞雲','新聞'],['2. 創世黎明(Dawn of world)','遊戲']]
from urllib import urlopenfrom bs4 import BeautifulSoupimport reimport csvhtml = urlopen('http://www.app12345.com/?area=tw&store=Apple%20Store')bs0bj = BeautifulSoup (html)GPnameList = [name.get_text() for name in bs0bj.find_all('dd',{'class':re.compile('ddappname')})]GPcompanyname = [cpa.get_text() for cpa in bs0bj.find_all('dd',{'style':re.compile('color')})]data = ’n’.join([’,’.join(d) for d in zip(GPnameList, GPcompanyname)])with open(’C:/Users/sa/Desktop/0217.csv’,’wb’) as f: f.write(data.encode(’utf-8’))
相关文章:
1. javascript - jQuery中live事件在移动微信端下没有效果;代码如下2. javascript - 请问一下react-native 布局的时候,尺寸的大小是如何确定的呢?3. javascript - avalon.js ms-on 事件绑定无效 ?4. javascript - js 修改表格元素的,可以用DOM操作实现吗?5. html5 - 目前 公司App 嵌入H5页面 做个 手机支付功能 没有做过 所以 请求各位有经验的 给个思路6. mysql5.7 json查询支持7. Python如何考虑代码注入安全?8. 找一个权威、实战的微信扫码授权登录网站的开发教程或者文章9. python - 关于matplotlib的x轴显示的问题10. html5 - vue-cli 装好了 新建项目的好了,找不到项目是怎么回事?