1.正则表达式: ①创建正则对象
②匹配查找
③提取数据保存
2.import re
string = """<div><a href="www.baidu.com"></a></div><title>正则</title>
pattern = re.compile(r'<a href="(.*?)".*?<title>(.*?)</title>', re.S)
res = re.findall(pattern, string)
或res = re.findall(re.compile(r'<a href="(.*?)".*?<title>(.*?)</title>', re.S), string)
解释: re:用于提取字符串内容的模块
():用于提取一组数据
r:防止转义
re.S:可以将正则的搜索域不再是一行,而是整个html字符串
findall():返回的是列表
.*? :非贪婪匹配
.* :贪婪匹配
3.import xlwt :xlwl操作excel第三方的包
4.from urllib.parse import quoto: quoto是对url地址中的中文进行编码的一个函数
5.爬取糗事百科
import re, random, time, pymysql from urllib.request import Request, urlopen class QSBKDataTool(object): # [('\n猩猩眨呀眨\n', '24', '\n\n\n昨晚同学聚会,以前的死对头非要坐我旁边,盯着我脸上的痘痘说她现在不吃肉,皮肤变好了。<br/>我放下筷子盯着她的水桶腰,说我只吃一点点肉,但不吃主食,所以体重控制的不错……<br/>聚会结束各自离去,也许是冤家路窄,我俩在牛肉面馆里又遇到了。\n\n', '5785', '43')] # 定义一个工具 remove_n = re.compile(r'\n', re.S) remove_br = re.compile(r'<br/>|<br>', re.S) @classmethod def process_data(cls, origin_data): # 处理数据 # 先给数据一个空列表 result_data = [] for data in origin_data: # 处理昵称 data[0] nick_name = data[0] # re.sub可以去掉标记字符 nick_name = re.sub(cls.remove_n, '', nick_name) # 相当于str字符串中的replace() # 处理内容 data[3] content = data[3] content = re.sub(cls.remove_n, '', content) content = re.sub(cls.remove_br, '', content) result_data.append((nick_name, data[1], data[2], content, data[4], data[5])) return result_data @classmethod def process_next(cls, data): next_page_str = data[0][1] next_page_str = re.sub(cls.remove_n, '', next_page_str) return (data[0][0], next_page_str) class QSBKDBTool(object): db = None cursor = None @classmethod def connect_db(cls): cls.db = pymysql.connect(host='localhost', user='root', passwd='123456', db='qsbk', port=3306, charset='utf8') cls.cursor = cls.db.cursor() @classmethod def save_list_data(cls, list_data): #