bs4:
首先导入bs4库
from bs4 import BeautifulSoup
利用requests打开网址
import requests
url = "https://www.sina.com.cn/"
r1 = requests.get(url,'lxml')
r1.encoding='utf-8'
#print (r1.text)
创造一个BeautifulSoup对象
soup =BeautifulSoup(r1.text,'lxml')
#print(soup)
bs4语法
(一)获取属性
# 获取p标签的属性
# 方法一
soup.p.attrs(返回字典) or soup.p.attrs['class'](class返回列表,其余属性返回字符串)
# 方法二
soup.p['class'](class返回列表,其余属性返回字符串)
# 方法三
soup.p.get('class')(class返回列表,其余属性返回字符串)
(二)find方法
soup.find('a')
soup.find('a', class_='xxx') # 注意class后的下划线
(三)find_all方法
soup.find_all('a')
soup.find_all(['a','span']) #返回所有的a和span标签
# 提取出前两个符合要求的
soup.find_all('a', limit=3)
(四)select方法
返回列表。类似CSS写法来筛选元素,标签名不加任何修饰,类名加点,id名加#
soup.select('a')
soup.select('a, span') # 注意引号的位置
(五)CSS选择器
css的规则:
标签名不加任何修饰,类名前加点,id名前加#,在这里用的方法大致是一样的,用到的方法是soup.select(),它的返回值是一个列表list
peewee:
1. 创建数据库连接
from peewee import *
# 创建MySQL数据库连接
db = MySQLDatabase(
'spider', #数据库名称
user='root',
password='123456',
host='localhost',
port=3306
)
2.定义数据表模型类
class Book(Model):
title = CharField()
author = CharField()
price = FloatField()
edition = IntegerField()
class Meta:
database = db
3.连接数据库并创建表
# 连接数据库
db.connect()
# 创建表
db.create_tables([Book])
4. 操作数据库
插入数据
使用Peewee插入数据非常简单,只需创建模型类的实例,并设置相应的属性值,然后调用save()
方法保存到数据库中。
# 引入数据库连接模块和Book映射类
from database import db, Book
# 连接数据库
db.connect()
# 插入数据
book = Book(title="三体一", author="刘慈欣", price=59.5, edition=6)
book.save()
book = Book(title="1984", author="乔治奥威尔", price=47.9, edition=2)
book.save()
book = Book(title="万历十五年", author="黄仁宇", price=125.5, edition=3)
book.save()