scrapy 在asb.netpython中使用selenium中的函数时,抓取www.example.com站点不起作用

xienkqul  于 2022-11-09  发布在  .NET
关注(0)|答案(1)|浏览(113)

我想刮一个.net网站,我做这个代码

from scrapy import Selector
from selenium import webdriver
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager

class BoursakuwaitSpider(scrapy.Spider):
    name = 'boursakuwait'
    custom_settings = {
        'FEED_URI': 'second.json',
        'FEED_FORMAT': 'json',
    }
    start_urls = ['https://casierjudiciaire.justice.gov.ma/verification.aspx']

    def parse(self, no_response):
        browser = webdriver.Chrome(executable_path=ChromeDriverManager().install())
        browser.get('https://casierjudiciaire.justice.gov.ma/verification.aspx')
        time.sleep(10)
        response = Selector(text=browser.page_source)

当我使用函数parse时,代码不起作用,但如果我只使用类,就像这样:

import time

import scrapy
from scrapy import Selector
from selenium import webdriver
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager

class BoursakuwaitSpider(scrapy.Spider):
    name = 'boursakuwait'
    custom_settings = {
        'FEED_URI': 'second.json',
        'FEED_FORMAT': 'json',
    }
    start_urls = ['https://casierjudiciaire.justice.gov.ma/verification.aspx']

    browser = webdriver.Chrome(executable_path=ChromeDriverManager().install())
    browser.get('https://casierjudiciaire.justice.gov.ma/verification.aspx')
    time.sleep(10)
    response = Selector(text=browser.page_source)

代码工作正确。但对我来说,我想使用的功能(第一个代码),我不知道哪里是问题。请任何帮助。

r6hnlfcb

r6hnlfcb1#

这是因为摩洛哥司法部的网站太旧了,你的程序无法处理它。根据this thread,你需要降级你的cryptographypyOpenSSL包来处理这个网站:

pip install --upgrade cryptography==36.0.2
pip install --upgrade pyOpenSSL==22.0.0

如果这样做不起作用,请尝试安装以下所有软件:

Scrapy       : 2.6.1
lxml         : 4.8.0.0
libxml2      : 2.9.4
cssselect    : 1.1.0
parsel       : 1.6.0
w3lib        : 1.22.0
Twisted      : 22.4.0

相关问题