码迷,mamicode.com
首页 > 其他好文 > 详细

我的第二十七篇博客---beautifulsoup与csv操作方法

时间:2019-05-26 15:39:33      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:第一个   css   人性   sds   ict   导入   sele   def   内容   

Beautiful Soup和lxml一样,也是一个HTML/XML的解析器,主要的功能也是如何解析和提取HTML/XML数据
lxml只会局部遍历,而Beautiful Soup是基于HTML DOM的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml/
Beautiful Soup 用来解析HTML比较简单,API非常人性化,支持CSS选择器,Python标准库中的HTML解析器,也支持lxml的解析器

bs4的基本使用实:
首先必须要导入bs4库
from bs4 import BeautifulSoup
html=网页响应内容
#创建BeautifulSoup对象,第一个参数:要解析的内容,第二个参数:解析器
soup=BeautifulSoup(html,‘lxml‘)
#name:要查找的标签名称,attrs是td里的属性 爬取data-title为IP的td里的值
listId=soup.find_all(name=‘td‘,attrs={‘data-title‘:‘IP‘})
for x in listId:
print(x.get_text()) #获取标签里面的内容
print(x.get(‘class‘)) #获取标签里面的class属性

代理:
import request
from lxml import BeautifulSoup
proxies={‘http‘:‘163.125.28.243:8118‘}
response=requests.get(url=‘https://www.baidu.com‘,proxies=proxies}
print(response.text)

def getIp():
response=requests.get(url=‘https://www.kuaidaili.com/free/‘)
soup=BeautifulSoup(response.text,‘lxml‘)
listIP=soup.find_all(name=‘td‘,attrs={‘data-title‘:‘IP‘})
listPort=soup.find_all(name=‘td‘,attrs={‘data-title‘:‘PORT‘})
listTag=soup.select(‘div.post>h2>a‘) #找在class=post的div里的h2里的a标签元素 id的话是div#post
list=[]
for x in range(len(listPort)):
list.append(‘%s:%s‘%(listIp[x].get_text(),listPort[x].get_text()))
return list

 

#读csv
import csv
with open(‘1.csv‘,mode=‘r‘) as f:
reader=csv.reader(f)
for i in reader:
print(i)

#写csv
with open(‘1.csv‘,mode=‘a‘,newline=‘‘) as f: #newline=‘‘ 写入没有隔行
writer=csv.writer(f)
writer.writerow([‘123‘,‘12‘]) #单行写入,writerows多行写入
writer.writerows([[‘12‘,‘12‘],[‘1‘,‘2‘]])


声明列名
listData=[{‘title‘:‘qwe‘,‘content‘:‘asds‘},{‘title‘:‘asdds‘,‘content‘:‘adas‘},{‘title‘:‘‘,‘content‘:‘asddas‘}]
filednames=[‘title‘,‘content‘] #声明列名
with open(‘1.csv‘,mode=‘a‘,newline=‘‘) as f:
writer=csv.DictWriter(f,fieldnames=filednames) #初始化writer
writer.writerows(listData)

 

我的第二十七篇博客---beautifulsoup与csv操作方法

标签:第一个   css   人性   sds   ict   导入   sele   def   内容   

原文地址:https://www.cnblogs.com/sll-csdn/p/10926081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!