python bs4 BeautifulSoup
发布时间:2020-12-20 10:53:38 所属栏目:Python 来源:网络整理
导读:Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库。bs4 模块的 BeautifulSoup 配合requests库可以写简单的爬虫。 安装 命令 : pip install beautifulsoup4 ? 解析器 主要的解析器,以及它们的优缺点如下: 安装命令: pip install lxml pip in
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库。bs4 模块的 BeautifulSoup 配合requests库可以写简单的爬虫。 安装
解析器
安装命令:
requests
pandas
?数据结构:
使用 Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:
Tag:Tag 对象与XML或HTML原生文档中的tag相同,tag中最重要的属性: name和attributes ? 从网页中获取指定标签、属性值,取值方式:
功能标签
查找元素:
demo ? import sys
import io
import requests
from bs4 import BeautifulSoup as bs
import pandas as pd
import numpy as np
from py_teldcore import sqlserver_db as db
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding=‘gb18030‘)
url = "http://www.tianqihoubao.com/lishi/hefei/month/201812.html"
def get_soap():
try:
r = requests.get(url)
soap = bs(r.text,"lxml")
return soap
except Exception as e:
print(e)
return "Request Error"
def save2cvs(data,path):
result_weather = pd.DataFrame(data,columns=[‘date‘,‘tq‘,‘temp‘,‘wind‘])
result_weather.to_csv(path,encoding=‘gbk‘)
print(‘save weather sucess‘)
def save2mssql(data):
sql = "Insert into Weather(date,tq,temp,wind) values(%s,%s,%s)"
data_list = np.ndarray.tolist(data)
# sqlvalues = list()
# for data in data_list:
# sqlvalues.append(tuple(data))
sqlvalues = [tuple(iq) for iq in data_list]
try:
db.exec_sqlmany(sql,sqlvalues)
except Exception as e:
print(e)
def get_data():
soap = get_soap()
print(soap)
all_weather = soap.find("div",class_="wdetail").find("table").find_all("tr")
data = list()
for tr in all_weather[1:]:
td_li = tr.find_all("td")
for td in td_li:
s = td.get_text()
data.append("".join(s.split()))
res = np.array(data).reshape(-1,4)
return res
if __name__ == "__main__":
data = get_data()
save2mssql(data)
print("save2 Sqlserver ok!")
? 参考资料
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在使用python与heroku中的postgresql连接时使用dj-data
- day51:django:dispatch&模板渲染&过滤器&标签&
- Python excel文件操作,编程练习题实例七十五
- python如何通过实例方法名字调用方法
- django – mongoengine在EmbeddedDocument ListField中搜索
- 自动化测试之路3-selenium3+python3环境搭建!
- 从零开始学Python第八周:详解网络编程基础(socket)
- Python读取图片EXIF信息类库介绍和使用实例
- .net – 使用不同的边界并行化多个相关操作
- python基础数据类型之字典的操作