网页爬虫抓取百度图片(soup爬虫学习方法总结(一):SQL语句create数据)
优采云 发布时间: 2022-02-28 08:09网页爬虫抓取百度图片(soup爬虫学习方法总结(一):SQL语句create数据)
获取响应内容:如果服务器能正常响应,就会得到一个Response。Response的内容就是要获取的页面的内容。响应的内容可能包括 HTML、Json 字符串、二进制数据(如图片和视频)等。
解析内容:获取的内容可能是HTML,可以用正则表达式和网页解析库进行解析;可能是Json,可以直接转成Json对象解析;它可能是二进制数据,可以保存或进一步处理。
保存数据:数据分析完成后保存。既可以存储为文本文件,也可以存储在数据库中。
四、Python 爬虫实例
爬行动物的定义、功能、原理等信息前面已经介绍过了。相信很多小伙伴已经开始对爬虫产生了兴趣,准备尝试一下。现在,我们来“干货”,直接贴一个简单的Python爬虫代码:
1.前期准备:安装Python环境,安装PYCHARM软件,安装MYSQL数据库,新建数据库考试,考试中建表屋,用于存储爬虫结果【SQL语句:create table house(price varchar ( 88),unit varchar(88),area varchar(88));]
2.爬虫的目标:爬取链家租赁网首页(url:)中所有房源的价格、单位、面积,然后将爬虫结构存入数据库。
3.爬虫源码:如下
import requests #请求URL页面内容
from bs4 import BeautifulSoup #获取页面元素
import pymysql #链接数据库
导入时间#time函数
import lxml #解析库(支持HTML\XML解析,支持XPATH解析)
#get_page 功能:通过requests的get方法获取url链接的内容,然后整合成BeautifulSoup可以处理的格式
def get_page(url):
响应 = requests.get(url)
汤= BeautifulSoup(response.text,'lxml')
回汤
#get_links函数的作用:获取listing页面上的所有出租链接
def get_links(link_url):
汤 = get_page(link_url)
links_div = soup.find_all('div',class_="pic-panel")
links=[div.a.get('href') for div in links_div]
返回链接
#get_house_info的作用是获取一个出租页面的信息:价格、单位、面积等。
def get_house_info(house_url):
汤=get_page(house_url)
价格 =soup.find('span',class_='total').text
unit = soup.find('span',class_='unit').text.strip()
area = 'test' #这里area字段我们自定义一个测试进行测试
信息 = {
“价格”:价格,
“单位”:单位,
“区域”:区域
}
返回信息
#数据库配置信息写入字典
数据库 = {
'主机': '127.0.0.1',
'数据库':'考试',
“用户”:“根”,
“密码”:“根”,
'字符集':'utf8mb4'}
#链接数据库
def get_db(设置):
返回 pymysql.connect(**设置)
#将爬虫获取的数据插入数据库
定义插入(分贝,房子):
值 = "'{}',"*2 + "'{}'"
sql_values=values.format(house['price'],house['unit'],house['area'])
sql="""
插入房屋(价格,单位,面积)值({})
""".format(sql_values)
游标 = db.cursor()
cursor.execute(sql)
mit()
#主程序流程:1.连接数据库2.获取每个listing信息的URL列表3.FOR循环从第一个URL开始获取具体信息(价格等)列表的4. 一一插入数据库
db = get_db(数据库)
链接 = get_links('#39;)
对于链接中的链接:
时间.sleep(2)
房子=get_house_info(链接)
插入(分贝,房子)
首先,“要想做好工作,必须先利其器”。用 Python 编写爬虫程序也是如此。在编写爬虫的过程中,需要导入各种库文件。正是这些及其有用的库文件帮助我们完成了爬虫。对于大部分工作,我们只需要调用相关的接口函数即可。导入格式为导入库文件名。这里需要注意的是,要在PYCHARM中安装库文件,可以将光标放在库文件名上同时按ctrl+alt键安装库文件,也可以是通过命令行安装(pip安装库文件名),如果安装失败或者没有安装,后续爬虫肯定会报错。在这段代码中,程序前五行导入相关库文件:requests用于请求URL页面内容;BeautifulSoup 用于解析页面元素;pymysql用于连接数据库;time 收录各种时间函数;lxml是一个解析库,用于解析HTML、XML格式文件,也支持XPATH解析。
其次,我们从代码末尾的主程序来看整个爬虫流程:
通过 get_db 函数连接到数据库。深入get_db函数,可以看到是通过调用
Pymysql的connect函数用于实现数据库的连接。这里的**seting是Python采集关键字参数的一种方式。我们将数据库的连接信息写入一个字典DataBase,并将字典中的信息传递给connect实现。参考。
使用get_links函数获取链家首页所有房源的链接。所有列表的链接都以列表的形式存储在 Links 中。get_links函数首先通过requests请求获取链家首页的内容,然后通过BeautyfuSoup的接口对内容的格式进行整理,转化为自己可以处理的格式。最后通过电泳find_all函数找到所有收录图片的div样式,然后用for循环获取所有div样式中收录的超链接标签(a)的内容(即href属性的内容),所有超链接存储在列表链接中。
通过 FOR 循环,遍历 links 中的所有链接(例如,其中一个链接是:)
使用与2)相同的方法,通过find函数定位元素,获取3)中链接中的价格、单位、地区信息,并将这些信息写入字典Info。
调用insert函数,将链接中获取的Info信息写入到数据库的house表中。深入insert函数可知,它通过数据库游标函数cursor()执行一条SQL语句,然后数据库执行commit操作,实现响应功能。SQL 语句在这里以一种特殊的方式编写。
给格式化函数格式化,这是为了方便函数的复用。
最后运行爬虫代码,可以看到链家首页所有房源信息都写入了数据中。(注:test是我手动指定的测试字符串)
后记:其实Python爬虫并不难。在熟悉了整个爬取过程之后,需要注意一些细节,比如如何获取页面元素,如何构造SQL语句等等。遇到问题不要慌张,可以通过查看IDE的提示一一排除bug,最终得到我们期望的结构。
最后:
可以获取我的个人V:atstudy-js,可以免费获取10G软件测试工程师面试合集文档。并免费分享对应的视频学习教程!,包括基础知识、Linux要领、Mysql数据库、抓包工具、接口测试工具、高级测试——Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架,性能测试等
这些测试数据应该是做【软件测试】的朋友最全面最完整的准备仓库了。这个仓库也陪我走过了最艰难的旅程,希望也能帮到你!