1、使用代理
下载中间件
在middlewares.py文件中创建一个自己的中间件的类
class MyDaili( ): # 重写这个方法 def process_request(self,request,spider): request. [\'proxy\'] = \'http://代理ip:代理端口\'
使用代理的时候需要在settings中打开中间件文件(55-57行),并且将中间件改为自己的写的
2、模拟登录
豆瓣
显示使用get提交获取登录令牌和验证码图片,再使用post提交账号密码
3、存储到mysql、mongodb
通过crawlspider经常爬取这些有分页、有详情页的
方法二:在pipelines.py中建立一个数据库链接类,然后再settings里面添加这个管道
# 创建链接数据库管道 class MySQLPipeline( ): # 打开数据库 def open_spider(self,spider): self.conn = pymysql.Connect(host=\'39.108.136.163\', port=3306, user=\'root\', password=\'123\', db=\'day02\', charset=\'utf8\') def process_item(self,item,spider): # 创建sql语句 sql = \'insert into movie_message(image_url,movie_ ,movie_score,movie_type,movie_director,movie_actor) value(%s,%s,%s,%s,%s,%s,%s);\' % (item[\'image_url\'],item[\'movie_ \'],item[\'movie_score\'],item[\'movie_type\'],item[\'movie_director\'],item[\'movie_actor\']) self.cursor = self.conn.cursor() # 添加数据 try: self.cursor.execute(sql) self.conn.commit() except Exception as e: self.conn.rollback() # 关闭数据库 def close_sppider(self,spider): self.conn.close()
-自己定制配置文件中的某些选项
custom_settings = {
\"ITEM_PIPELINES\": {
\'movieproject.pipelines.MyMongoDbPipeline\': 302,
}
}
方法二:
-
在settings文件中配置数据库链接的配置参数
# 数据库的配置参数 DB_HOST = 主机地址 DB_PORT = 3306 DB_USER = 用户名 DB_PASSWORD = 密码 DB_NAME = 数据库名称 DB_CHARSET = \'utf8\'
-
然后在pipelines.py文件导入,使用get_project_settings()将settings.py文件读到内存变成一个字典
from scrapy.utils.project import get_project_settings # 将配置文件读到内存中,是一个字典 settings = get_project_settings() host = settings[\'DB_HOST\'] port = settings[\'DB_PORT\'] user = settings[\'DB_USER\'] password = settings[\'DB_PASSWORD\'] dbname = settings[\'DB_NAME\'] dbcharset = settings[\'DB_CHARSET\'] self.conn = pymysql.Connect(host=host, port=port, user=user, password=password, db=dbname, charset=dbcharset)
继续阅读与本文标签相同的文章
上一篇 :
这个双十一,阿里视频云带你去狂欢
下一篇 :
884. 两句话中的不常见单词
-
PHP 异常任重而道远
2026-05-18栏目: 教程
-
学生时代所学的一些 C 语言知识点回顾(2)——指针
2026-05-18栏目: 教程
-
假设我们都失去视觉——淘宝的无障碍化建设 | 开发者必读(061期)
2026-05-18栏目: 教程
-
阿里巴巴“新六脉神剑”来了
2026-05-18栏目: 教程
-
RocketMQ消息轨迹-设计篇
2026-05-18栏目: 教程
