python实践3——利用爬虫爬取“广州各大行业微信群二维码信息”及存入数据到MySQL数据库

本次以“广州各大行业微信群二维码信息”为例,利用爬虫进行信息“爬取”,并存入数据库,方便后面数据分析处理,以及调用。话不多说,直接上代码:

[python] view plain copy
  1. import pymysql  
  2. import requests  
  3. import re  
  4.   
  5.   
  6. def download(urlList):  
  7.   
  8.     #连接MySQL  
  9.     conn = pymysql.connect(  
  10.         host = '127.0.0.1',  
  11.         port = 3306,  
  12.         user = 'root',  
  13.         password = '******'#根据用户实际密码填写  
  14.         database = 'pachong',  
  15.         charset = 'utf8'  
  16.     )  
  17.   
  18.     #获取数据库游标  
  19.     cursor = conn.cursor()  
  20.   
  21.     #创建表格  
  22.     cursor.execute("create table t_QR(id INT PRIMARY KEY auto_increment NOT NULL,name VARCHAR(50),erweima VARCHAR(230),weixinhao VARCHAR(60),industry VARCHAR(60))")  
  23.   
  24.     for urlpath in urlList:  
  25.         #发起网络请求并下载资源(网页源代码)  
  26.         res = requests.get(urlpath)  
  27.         html = res.text  
  28.   
  29.         # 筛选数据(正则表达式)[群名,二维码图片地址,微信号,行位分类]  
  30.         nameGroup = r'alt="(.*?)">'  
  31.         erweima = r'<img src="(.*?)">'  
  32.         weixinhao = r'<p class="wxNum c888 ellips">\s*(.*?)\s*</p>'  
  33.         industry = r'</span>\s*(.*?)\s*</p>'  
  34.         name_group = re.compile(nameGroup)  
  35.         erweima_img = re.compile(erweima)  
  36.         weixin_hao = re.compile(weixinhao)  
  37.         industry_name = re.compile(industry)  
  38.         name_list = name_group.findall(html)  
  39.         erweima_list = erweima_img.findall(html)  
  40.         weixinhao_list = weixin_hao.findall(html)  
  41.         industry_list = industry_name.findall(html)  
  42.   
  43.         # 数据再处理,获得最终需要数据  
  44.         name_list1 = name_list[2:-1]  
  45.         erweima_list1 = []  
  46.         for i in range(3,len(erweima_list)-1,2):  
  47.             erweima_list1.append(erweima_list[i])  
  48.         industry_list1 = []  
  49.         for j in range(1,len(industry_list),2):  
  50.             industry_list1.append(industry_list[j])  
  51.   
  52.         #将爬取的数据存入数据库MySQL中  
  53.         for k in range(len(name_list1)):  
  54.             cursor.execute('insert into t_QR(name,erweima,weixinhao,industry) VALUES("%s","%s","%s","%s")' %(name_list1[k],erweima_list1[k],weixinhao_list[k],industry_list1[k]))  
  55.   
  56.     #获取游标中结果数据  
  57.     cursor.fetchall()  
  58.   
  59.     #结果提交  
  60.     conn.commit()  
  61.     print("结果已提交")  
  62.   
  63.     #断开连接  
  64.     conn.close()  
  65.   
  66.   
  67. #生成1-442页网址的列表(字符串的拼接)  
  68. def url_list(url):  
  69.     urlList = []  
  70.     # 因442页数据太多,先爬取5页看看效果  
  71.     for i in range(5):  
  72.         urlPath = url + '&p=' + str(i)  
  73.         urlList.append(urlPath)  
  74.     return urlList  
  75.   
  76.   
  77. if __name__ == '__main__':  
  78.     url = r'https://www.weixinqun.com/group?c=440100&m=1'  
  79.     urlList = url_list(url)  
  80.     download(urlList)  

结果图如下:

其中数据库保存了二维码的地址,只要读取地址,就可以找到相应的二维码。

python实践3——利用爬虫爬取“广州各大行业微信群二维码信息”及存入数据到MySQL数据库