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. mysql sum去除重复2. 老师无限级分类有点难哟 不好理解3. javascript - swiper.js嵌套了swiper 初始设置不能向下一个滑动 结束后重新初始4. 为什么span的color非要内联样式才起作用?5. 提示内部服务错误什么问题6. python - Django ManyToManyField 字段数据在 admin后台 显示不正确,这是怎么回事?7. 请问没有对以太网通信进行封装的python库?8. python - pysciter 如何配置运行环境?9. python - 如何修改twisted自带的日志输出格式?10. php由5.3升级到5.6后,登录网站,返回的是php代码,不是登录界面,各位大神有知道的吗?

网公网安备