首页 > 其他分享 >关于scrapy框架爬某站出现DEBUG: Redirecting (meta refresh)的问题

关于scrapy框架爬某站出现DEBUG: Redirecting (meta refresh)的问题

时间:2024-03-23 18:04:00浏览次数:22  
标签:baidu cur settings self refresh scrapy meta import

项目场景:

Spider框架爬取m.baidu.com搜索结果


问题描述

访问地址为 https://m.baidu.com/s?word=电影&pn=0
最后结果变成了 http://m.baidu.com/s?cip6=240e:390:6a52:67e5:b0fa:e9d6:226e:376d&word=电影&pn=0&pu=sz%401321_480&t_noscript=jump 导致结果不对

import json
import time

import scrapy
import requests
from datetime import datetime
import math

from bs4 import BeautifulSoup
from scrapy.http import HtmlResponse
from scrapy.utils import spider

from ..items import BaiduWapspiderItem
from tld import get_tld
from ..IP.free_ip import get_random_proxy
from selenium import webdriver
from scrapy_selenium import SeleniumRequest
from scrapy.utils.project import get_project_settings
from scrapy_redis.spiders import RedisSpider
from fake_useragent import UserAgent
import pymysql
from pymysql import cursors
from scrapy import Request

settings = get_project_settings()
class BaiduWapSpider(RedisSpider):
    name = "baidu_wap"
    #redis_key = 'baidu_wap'
    #start_urls = []
    

    def __init__(self, *args, **kwargs):
        super(BaiduWapSpider, self).__init__(*args, **kwargs)
        self.host = settings['DB_HOST']
        self.user = settings['DB_USER']
        self.password = settings['DB_PASSWROD']
        self.database = settings['DB_NAME']
        self.charset = settings['DB_CHARSET']
        self.cursorclass = cursors.DictCursor
        self.conn = pymysql.Connect(host=self.host, user=self.user, password=self.password, database=self.database,
                                    charset=self.charset, cursorclass=self.cursorclass)
        self.cur = self.conn.cursor()

    # 获取点击的url信息

    def get_keywords(self, page=1, page_num=100):
        # start = page
        # end = page_num
        # 获取当前日期
        # sql1 = 'SELECT *  FROM seo_keywords LIMIT 1'
        # self.cur.execute(sql1)
        # resdata = self.cur.fetchone()
        # 获取当前日期
        sql = 'SELECT id,keyword,site_num FROM seo_keywords where index_status = 1 and is_del = 0 order by id limit 100'
        print(sql)
        self.cur.execute(sql)
        # 使用 fetchone() 方法获取单条数据.
        list = self.cur

标签:baidu,cur,settings,self,refresh,scrapy,meta,import
From: https://blog.csdn.net/qq_28917955/article/details/136971502

相关文章

  • 爬虫工作量由小到大的思维转变---<第四十九章 Scrapy 降维挖掘---中间件系列(1)>
    前言:        Scrapy是一个功能强大的网络爬虫框架,但在实际应用过程中,中间件问题可能会成为一个令人头痛的难题。为了彻底解决Scrapy中的各种疑难杂症,我决定进行第四次全面的学习和实践,并将中间件的问题一一拆解,以确保我对中间件的理解和掌握更加全面和深入。正文:爬......
  • 初用scrapy 报错503 Service Unavailable问题
    毕设基于Hadoop的电子产品推荐系统 系统需要大量的电子产品信息,爬取的是中关村的数据(没有像京东一样的反爬机制)使用scrapyspider爬取页面信息中,可以获取部分页面数据,但爬取一些页面时,会报错503ServiceUnavailable部分代码详情defparse(self,response):if......
  • My understanding of pedagogic metalanguage in "The Three-Body Problem "
    ......
  • # 在 SwiftUI 中使用 Metal Shader
    简介从iOS17/macOS14开始,SwiftUI支持使用Metalshader来实现一些特效。主要提供三个ViewModifier:colorEffect、distortionEffect和layerEffect。每个modifier的第一个参数是传入的Shader实例。此外,View实例还新增了一个visualEffectmodifier,用于暴露修饰内......
  • Python实战:爬虫基础与Scrapy框架入门
    1、Python爬虫基础1.1、了解网页结构在进行爬虫之前,首先需要了解网页的结构。大多数网页都是使用HTML(超文本标记语言)编写的,而现代网页通常还会使用CSS(层叠样式表)和JavaScript来增强视觉效果和交互性。HTML:网页的主要内容,包括文本、图片、链接等。CSS:用于美化HTML元素,定义......
  • nicerefresh--自动刷新Spring中@Value的值
    nicerefresh:自动刷新Spring项目中@Value的值。@RefreshScope虽然有这个功能,但是,它在很多场景下会失效!而nicerefresh就是为了解决这一问题而产生的。用了nicerefresh,不需要加任何注解,即可自动刷新配置!官网:https://www.yuque.com/knifeblade/opensource/nicerefreshgitee:https://......
  • Metasplotiable靶场渗透
    Metasplotiable靶场渗透一.信息收集1.获取IP地址由于虚拟机和本主机在同一局域网下,可以使用ipconfig指令查看主机和靶场的网络地址,再使用Nmap对靶场进行扫描,进行信息收集。​​IP地址的网络地址为192.168.172/24,使用Nmap扫描查找虚拟机对应IP地址。​如图,在本局域网下共运......
  • python scrapy 爬虫爬取quotes.toscrape.com
    1、安装scrapy pip包的管理工具pipinstallscrapy(在cmd中下载)win+r键输入cmd进入命令行2.scrapy介绍它是由五部分组成 引擎 下载器 spider 中间件 管道你只需要知道spider即可因为所有代码都在这里面管道是处理数据的框架定义好接口调用就可以了3.xpa......
  • Salesforce LWC学习(四十九) RefreshView API实现标准页面更新,自定义组件自动捕捉更新
    本篇参考: https://developer.salesforce.com/docs/platform/lwc/guide/data-refreshview.htmlhttps://developer.salesforce.com/docs/platform/lwc/guide/reference-lightning-refreshview.htmlhttps://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007KX6dA......
  • spring refresh的流程(AbstractApplicationContext的refresh方法)
    12个阶段1、prepareRefresh,做准备工作2、obtainFreshBeanFactory,创建或获取beanfactory3、prepareBeanFactory,准备beanfactory4、postProcessBeanFactory,子类扩展beanfactory5、invokeBeanFactoryPostProcessors,后处理器扩展beanfactory6、registerBeanPostProcessors,准备b......