在 Kickstarter 上抓取网页时出现问题

问题描述 投票:0回答:1
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

chromedriver = "C:\\Users\\xxx\\Downloads\\chromedriver-win32\\chromedriver.exe"
options = Options()
options.add_argument("--headless")  # Run in headless mode
options.add_argument("--disable-gpu") 
service = Service(chromedriver)
driver = webdriver.Chrome(service=service, options=options)

url = "https://www.kickstarter.com/projects/owensrakukiln/the-laguna-clay-raku-kiln-for-owen/description"
driver.get(url)

try:
    story_section = WebDriverWait(driver, 20).until(
        EC.presence_of_element_located((By.CLASS_NAME, "story-content"))
    )
    
    story = story_section.text
    print(story)

except Exception as e:
    print(f"An error occurred: {e}")

driver.quit()

大家好

我正在尝试从该 kickstarter 活动中抓取故事部分,但收到错误“无法建立新连接:[WinError 10061] 无法建立连接,因为目标计算机主动拒绝它'))”

任何人都可以帮我提供正确的代码吗?我是网络爬虫方面的新手,但我可以轻松地对亚马逊和维基百科等信息网站进行网络爬虫,但每当我尝试从 Kickstarter 进行网络爬虫时,我都会遇到很多错误。这是我使用的代码:

selenium-webdriver web-scraping
1个回答
0
投票

您在尝试从 Kickstarter 抓取数据时似乎遇到了连接错误。以下是该问题的一些潜在原因以及可帮助您解决该问题的建议:

  1. 检查您的互联网连接

    确保您的互联网连接稳定,并且您可以通过浏览器毫无问题地访问 Kickstarter 网站。

  2. 防火墙或防病毒设置

    有时,防火墙或防病毒软件可能会阻止脚本建立的连接。检查您的防火墙或防病毒软件是否阻止了 Python 或 ChromeDriver。

  3. 更新 Chrome 和 ChromeDriver

    确保您的 Google Chrome 浏览器和 ChromeDriver 都是最新的。版本不匹配可能会导致连接问题。您可以从这里下载最新版本的 ChromeDriver。

  4. 使用代理或VPN

    如果 Kickstarter 阻止来自某些 IP 地址的请求,请考虑使用代理或 VPN 来更改您的 IP 地址。这可以帮助绕过任何限制。

  5. 修改您的代码

    有时,添加用户代理字符串可以帮助模仿常规浏览器请求。您可以像这样修改您的选项:

options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 如 Gecko) Chrome/91.0.4472.124 Safari/537.36")

  1. 检查验证码或机器人防护

    Kickstarter 等网站可能采取措施防止自动抓取。如果您遇到验证码,您可能需要手动解决或使用可以处理验证码的服务。

修改后的示例代码: 这是添加了用户代理字符串的代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

chromedriver = "C:\\Users\\xxx\\Downloads\\chromedriver-win32\\chromedriver.exe"
options = Options()
options.add_argument("--headless")  # Run in headless mode
options.add_argument("--disable-gpu")
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
service = Service(chromedriver)
driver = webdriver.Chrome(service=service, options=options)

url = "https://www.kickstarter.com/projects/owensrakukiln/the-laguna-clay-raku-kiln-for-owen/description"
driver.get(url)

try:
    story_section = WebDriverWait(driver, 20).until(
        EC.presence_of_element_located((By.CLASS_NAME, "story-content"))
    )
    
    story = story_section.text
    print(story)

except Exception as e:
    print(f"An error occurred: {e}")

driver.quit()

结论

尝试这些建议,看看它们是否能解决您的问题。如果您仍然遇到问题,请分享您遇到的任何其他错误消息,我们可以进一步排除故障。

© www.soinside.com 2019 - 2024. All rights reserved.