第三篇,将爬虫爬取下来的列表数据转换为字符串形式存入数据库中 | 您所在的位置:网站首页 › 数组的字符串形式是什么样的 › 第三篇,将爬虫爬取下来的列表数据转换为字符串形式存入数据库中 |
了解思路
第一篇爬虫是将获取到的数据以列表的方式保存下来的,后面为了方便数据清洗,我就将他改为字符串形式输出。 列表转换为字符串有这几种方法:1.使用replace方法 a = ['123条评论'] aa = str(a) b = aa.replace("条评论",'') print(b)2.替换元素 aaa = ['黑色', '红色', '白色', '黑色'] bbb = ['黄色' if i == '黑色' else i for i in aaa] print(bbb)3.替换多种元素 aaa = ['黑色', '红色', '白色', '黑色'] ccc = ['黑色', '红色'] bbb = ['黄色' if i in ccc else i for i in aaa] print(bbb)4.替换多个元素 aaa = ['黑色', '红色', '白色', '黑色'] ccc = {'黑色': '黄色', '红色': '白色'} bbb = [ccc[i] if i in ccc else i for i in aaa] print(bbb)5.使用正则表达式的sub方法 c = ['¥112.60'] e = str(c) d = re.sub("¥",'',e) print(d)正则表达式的话,去循环遍历的时候他的第一个元素会是[,显然不是我们要表达的效果。 所以这里我们使用replace的方法进行替换,先使用xpath获取到列表数据,再进行循环遍历转换为字符串的形式之后使用replace的方法替换字符串中的元素,全部代码如下: import requests from lxml import etree import pymysql a = input('请输入你想要查找的书籍:') headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0'} for i in range(1, 10): url = 'http://search.dangdang.com/?key='+str(a)+'&act=input&page_index=' + str(i) response = requests.get(url, headers=headers) text = response.text html = etree.HTML(text) quan = html.xpath('//ul[@class="bigimg"]/li') for x in quan: name = x.xpath('.//p[@name="title"]/a/@title') href = x.xpath('.//p[@name="title"]/a/@href') money1 = x.xpath('.//span[@class="search_now_price"]/text()') comment1 = x.xpath('.//a[@name="itemlist-review"]/text()') conn = pymysql.connect('127.0.0.1', 'root', '123456', 'dd', charset='utf8') cur = conn.cursor() for a in range(len(name)): print(name[a]) money = money1[a].replace("¥",'') comment = comment1[a].replace("条评论",'') sql = 'insert into bb(title,link,money,comment) VALUES("%s","%s","%s","%s")' cur.execute(sql % (name[a], href[a], money,comment)) cur.close() conn.commit() conn.close()注意,这里我新建了一个数据库bb来保存,里面的name跟href都用varchar的格式写入,money跟comment都用int的格式写入。 最后,这篇为昨天补的,昨天兼职有点累了就没来的急写,有什么问题欢迎讨论。今日依旧是个卑微打工仔。 |
CopyRight 2018-2019 实验室设备网 版权所有 |