爬取多个页面的数据

代码如下:
# -*- coding:utf8 -*-
#导入requests库,取别名res
import requests as res
#导入bs4包,取别名bs
from bs4 import BeautifulSoup as bs
#导入数据库驱动包
import MySQLdb
#声明页面从哪开始
j = 1
#循环遍历每个页面
while j <= 111:
    ##获取目标网站的网页
    #r代表将“”内的所有内容都默认为字符串
    path = r"http://www.bengyechina.com/product/enterprise_alllist_0_0_0_" + str(j) + ".html"
    #请求获取目标网页的html
    doc = res.get(path)
    #准备要爬取数据的列表
    names = []
    imgs = []
    #需要bs解析器去解析网页
    text = bs(doc.text,"html.parser")
    #从网页中查询类标签名为plist的下标为0的所有内容
    p1 = text.select(".plist")[0]
    #从类标签名为plist的下标为0的html中查询标签为li的内容中的img中所有内容
    img = text.select("li img")
    #声明变量作为下标,并初始化
    i = 0
    #---------------爬取数据结束---------------
    #---------------数据写入数据库----------------
    #连接mysql数据库中的pachong数据库
    #connect("主机名","用户名","密码","数据库名",charset = "utf8")
    conn = MySQLdb.connect("localhost","用户名","密码","pachong",charset = "utf8")
    #获取游标操作数据库
    cursor = conn.cursor()
    #准备sql语句
    sql = "insert into bengye(name,img) "
    #循环往数据库中添加数据
    for p2 in p1.select("li"):
        #p2代表每一个li标签
        #获取p2里面的h2
        p3 = p2.select("h2")[0].select("a")[0].text
        #往列表中添加数据
        names.append(p3)
        imgs.append(img[i]["src"])
        # print names[i]
        # print "-----------------------"
        # print imgs[i]
        #判断是否为添加数据的最后一条
        if i != len(p1.select("li")) - 1 :
            #mysql中的同时往表中插入多条数据的代码
            sql += " select '" +names[i]+"','"+imgs[i]+"' union \n"
        else :
            #mysql中的同时往表中插入多条数据的代码的最后一条代码
            sql += " select '" +names[i]+"','"+imgs[i]+"'"
        #累加器
        i = i + 1
    #执行sql语句
    cursor.execute(sql)
    #提交事物
    conn.commit()
    #关闭链接
    conn.close()
    #页面的累加器
    j = j + 1
    # print "*****************"
    # print j
    # print "&&&&&&&&&&&&&&&&&&&&&&"

猜你喜欢

转载自blog.csdn.net/Como0413/article/details/79092379
今日推荐