def spider(key="手机", total_pages=0): total_pages = int(total_pages) goods_list = main(key, total_pages) content = "淘宝[" + key + "]销售数据,获取共" + str(len(goods_list)) + "条数据" db = dbUtil() m = datetime.datetime.now().strftime("%Y-%m") for category, title, discount, original_price, shop, monthly_sales in goods_list: s_sql = "select count(id) from goods where title=\"" + title + "\" and monthly=\"" + m + "\"" s_res = db.query_noargs(s_sql) goods_sql = "" if s_res[0][0] == 0: goods_sql = "insert into goods VALUES (NULL, \"" + title + "\",\"" + category + "\"," + str( discount) + "," + str(original_price) + ",\"" + shop + "\"," + str(monthly_sales) + ",\"" + m + "\")" else: goods_sql = "update goods set discount=" + str(discount) + ",original_price=\"" + str( original_price) + "\",monthly_sales=\"" + str( monthly_sales) + "\" where category= \"" + category + "\" and title=\"" + title + "\" and monthly=\"" + m + "\"" db.query_noargs(goods_sql) t = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") sql = "insert into slog VALUES (NULL, \"【爬虫启动】爬取数据:" + content + "\",\"" + t + "\")" db.query_noargs(sql) db.close_commit()解释这部分代码
时间: 2023-06-27 10:03:42 浏览: 70
baike_spider.zip
这段代码实现了一个爬虫程序,用于从淘宝网站上获取指定关键词的商品销售数据,并将数据存储到MySQL数据库中。
参数key表示要搜索的关键词,total_pages表示要爬取的总页数。函数调用main(key, total_pages)实现了爬取淘宝网站上指定关键词和页数的商品信息,并将获取到的信息存储到列表goods_list中。
接下来,程序连接MySQL数据库,将数据存储到goods表中。先获取当前月份,然后遍历goods_list中的每一条商品信息,判断该商品在数据库中是否已存在。如果不存在,则将该商品的信息插入到数据库中;如果已存在,则更新该商品的折扣、原价、月销量等信息。
最后,记录程序的运行日志,并提交数据库事务。
值得注意的是,这段代码存在SQL注入漏洞,建议使用参数化查询来防止注入攻击。
阅读全文