python爬虫爬取数据

        某次去吃饭,觉得味道不错,后来打开了这个公司的官网,看到了几组菜品数据,就想着爬下来。

缩小网页之后,一共12组数据。

 第一步,F12

 取这三个数据

代码:

先引入各种库,其中pymysql是python进行数据库操作的库,这个必不可少

安装库有两种方法,

第一种:简单的,利用pycharm自身的特性,保存的时候,会自动检测,如果下面用到了,但是上面没有引入,会自动引入,并且安装相应的类

第二种:打开win+r ,cmd命令行,去安装(这里不解释,一般都是用pycharm去安装的)

1.引入类库

2.拼接headers头

3.请求地址,并且利用正则去匹配筛选出想要的数据(如果是直接请求的接口,则可以直接拿到数据,省掉正则匹配html代码的这一步)

4.对得到的 数据进行处理,封装成易于存入数据库的类型

5存入数据库

6利用python的web三方类或者是其他的语言,进行数据的展示,这里采用了PHP进行展示。

import re
import array as arr
import pymysql
import requests  # 先导入爬虫的库,不然调用不了爬虫的函数
from lxml.doctestcompare import strip

headers = {

    # "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"
}  # 设置头部信息,伪装浏览器

response = requests.get("https://www.xishaoye.com/products.html", headers=headers)  # get方法访问,传入headers参数,
response.encoding = 'GBK'
response.encoding = 'utf-8'
# print(response.text)
t = '<div class="food-img"><img class="food-img-none" src="(.*?)" alt="(.*?)"></div>'
#
s = '<p class="food-desc familysy" style="color: #8d8d8d;">(.*?)</p>'

result = re.findall(t, response.text)
result2 = re.findall(s, response.text)

chang = len(result)
array_arr = []
array_alls = []
a = 0

db = pymysql.connect(host='localhost',
                     user='root',
                     password='',
                     database='',
                     charset='utf8')
cursor = db.cursor()
while a < chang:
    array_arr.append(strip(result[a][0]))
    array_arr.append(strip(result[a][1]))
    array_arr.append(strip(result2[a]))
    array_alls.append(array_arr)
    array_arr = []
    a += 1
#

for value in array_alls:

    name = str(value[1])
    text = str(value[2])
    image1 = 'https://www.xishaoye.com' + value[0]
    image = str(image1)


    try:
        sql = "insert into os_py_xishaoye (name, text, image) values (%s,%s,%s)"
        cursor.execute(sql, [name, text, image])
        db.commit()
    except Exception as e:
        print("插入数据失败:", e)
    else:
        # 如果是插入数据, 一定要提交数据, 不然数据库中找不到要插入的数据;

        print("插入数据成功;")

我这边是保存进了数据库,利用PHP展示出来的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值