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. python的文件读写问题?2. sublime-text - sublime text 3中编译python(sublimeREPL),如何仅运行单行/选定部分3. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?4. css3 - 微信前端页面遇到的transition过渡动画的bug5. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?6. python - 怎样在linux下开发flask web应用时查看代码出错(traceback)的地方。7. 老师,flex-shrink: 1; 按视频操作,不会自动缩放8. mysql - phpMyAdmin无法导入数据9. macos - mac下docker如何设置代理10. 如何解决docker宿主机无法访问容器中的服务?

网公网安备