当前位置: 首页 > news >正文

免费建站网站有哪些我想学制作网站

免费建站网站有哪些,我想学制作网站,修改标题下分类 wordpress,厦门建设局官网电话本节内容主要为: (1)创建数据库 (2)创建数据库表 (3)爬取数据进MYSQL库 1 新建数据库 使用MYSQL数据库存储数据,创建一个新的数据库 create database scrapy_demo;2 新建数据表 CR…
  • 本节内容主要为:
    (1)创建数据库
    (2)创建数据库表
    (3)爬取数据进MYSQL库

1 新建数据库

使用MYSQL数据库存储数据,创建一个新的数据库

create database scrapy_demo;

2 新建数据表


CREATE TABLE tb_tour (id INT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',title VARCHAR(255) NOT NULL COMMENT '景点标题',title_en VARCHAR(255) COMMENT '景点英文标题',img VARCHAR(255) COMMENT '景点图片链接',score FLOAT COMMENT '景点评分',comments int COMMENT '景点评分数量',comment_url VARCHAR(255) COMMENT '评论链接',rank_title VARCHAR(255) COMMENT '排名标题',ranks INT COMMENT '景点排名',select_user VARCHAR(255) COMMENT '精选评论用户头像',select_comment TEXT COMMENT '精选评论'
);

3 增加常量

因为我们的表中新增了国家和城市的字段,程序中可以通过常量传递过去,新增一个constant.py。

NATION = "日本"
CITY = "东京"

4 修改爬虫

爬虫qiongyou_3.py 有2处修改,第一是指明驱动存储的路径。

    def __init__(self, *args, **kwargs):super(QiongyouSpider, self).__init__(*args, **kwargs)options = webdriver.ChromeOptions()# 这行代码是用于设置 Chrome 浏览器的选项。--headless 参数表示以无头模式(无 GUI 界面)运行 Chrome 浏览器。# 无头模式下,浏览器运行在后台,不会显示任何图形界面,从而能够提高爬取效率和性能。这在服务器环境中非常有用,因为服务器通常没有图形界面。options.add_argument('--headless')LOGGER.setLevel(logging.WARNING)# 这行代码是用于指定 ChromeDriver 的路径。ChromeDriver 是 Selenium 用于控制 Chrome 浏览器的驱动程序。service = Service('/usr/local/bin/chromedriver')self.driver = webdriver.Chrome(options=options, service=service)  # 替换为 ChromeDriver 的实际路径

第二是对解析页面的时候新增城市和国家字段,引入这2个常量就可以了。

item['city'] = CITY
item['nation'] = NATION

5 修改pipelines

由于我们改造成MYSQL存储数据了,因此修改原来的管道类,只需要改个名字:

# 保存excel
class TourFilePipeline:

我们新增的管道类还是用原来的名字,这样在配置文件中就不需要修改了,在这边也可以看到scrapy的设计,如果说我们想切换会保存excel ,只需要改配置文件就可以,是不需要改代码的,下面给出我们新增的管道类。

安装pymysql

pip install pymysql

编写管道类

import pymysql
import json# 保存mysql
class TourPipeline:def __init__(self):# 连接 MySQL 数据库self.db = pymysql.connect(host="localhost",user="root",password="***",database="scrapy_demo",charset="utf8")self.cursor = self.db.cursor()def process_item(self, item, spider):# 检查数据是否已存在sql = "SELECT COUNT(*) FROM tb_tour WHERE title = %s"self.cursor.execute(sql, (item["title"],))count = self.cursor.fetchone()[0]if count > 0:spider.log(f"Data already exists: {item['title']}")return item# 插入新数据sql = ("INSERT INTO tb_tour (title, title_en, img, score, comments, comment_url,"" rank_title, ranks, select_user, select_comment, nation, city) ""VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)")values = (item["title"],item["title_en"],item["img"],item["score"],item["comment"],item["comment_url"],item["rank_title"],item["rank"],item["select_user"],item["select_comment"],item["nation"],item["city"])try:self.cursor.execute(sql, values)self.db.commit()spider.log(f"Saved data: {item['title']}")except pymysql.Error as e:self.db.rollback()spider.log(f"Error saving data: {item['title']} - {e}")return itemdef close_spider(self, spider):self.cursor.close()self.db.close()

6 运行爬虫

和上一期一样的运行方式

scrapy crawl qys3

可以看到存储到MYSQL的效果
在这里插入图片描述

7 小结

通过四期的内容我们完成了如下内容:

  • 利用scrapy框架爬取【东京】景区列表页面进行html保存
  • scrapy + selenium 实现动态页面翻页
  • 解析景区数据存储到excel文件
  • 解析景区数据存储到MySQL数据库

后续这个系列还会更新的内容有:

  • 断点续爬功能的研究和实战
  • 图片下载到本地保存
  • 爬取景点评论 \ 景点详情页面
  • 结合爬取的数据搭建前后端分离的数据分析可视化系统

欢迎大家收藏关注!

http://www.yayakq.cn/news/796414/

相关文章:

  • 福州网站关键排名ref.so wordpress
  • sem 优化价格网站换ip对优化有影响吗
  • 公司用wordpress哈尔滨关键词优化排名
  • 长沙零零七网站建设小语种企业网站建设
  • 开设类似于京东商城这类购物网站程序员给别人做的网站违法
  • 滨州公司网站建设免费咨询律师电话12345
  • 下载上海发布官方网站asp.net空网站
  • 手机怎么登录自己做的网站用dw做网站的代码
  • 如何变更网站备案信息查询招聘桂林网站推广维护建设
  • 天津企业网站开发游戏点卡平台网站开发
  • 一个网站的二级目录在另一台服务器上_怎么做企业网站模板包含什么
  • 点击图片跳转到网站怎么做链接建网站收费吗
  • 网站站内优化如何建立一个论坛网站
  • 东莞樟木头做网站哪家好京津冀网站建设公司
  • 网站加载速率东莞网页设计与制作公司
  • 深圳外贸公司网站网站设计专业实验室建设
  • 全屏自适应网站模板太原网站搜索排名
  • 上海网站空间服务器开发公司起名大全
  • 杭州的电商网站建设建什么样的网站好
  • 德阳 网站建设百度云搜索引擎
  • 长春网站选网诚传媒wordpress没有账号
  • 搬瓦工 做网站网站建设工作情况报告
  • wordpress站点添加skype国内响应式布局网站
  • 做兼职女的网站滕州市住房城乡建设局网站
  • 手机网站制作时应该注意的问题云主机可以放多少网站
  • 徐州网站网站建设电子商务网站建设携程
  • 红桥网站建设仿站酷网站模板
  • 一站式做网站开发石家庄手机网站建设
  • 锦州企业网站建设网站建行接口
  • 免费网页代理ip地址网站wordpress 相同文章