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. docker容器呢SSH为什么连不通呢?2. docker api 开发的端口怎么获取?3. 前端 - 类到底该如何去命名 .newsList 这种的命名难道真的不是过度语义化吗?~4. golang - 用IDE看docker源码时的小问题5. spring-mvc - spring-session-redis HttpSessionListener失效6. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?7. Docker for Mac 创建的dnsmasq容器连不上/不工作的问题8. docker网络端口映射,没有方便点的操作方法么?9. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?10. docker不显示端口映射呢?

网公网安备