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 进行网络爬虫时,我都会遇到很多错误。这是我使用的代码:
您在尝试从 Kickstarter 抓取数据时似乎遇到了连接错误。以下是该问题的一些潜在原因以及可帮助您解决该问题的建议:
检查您的互联网连接
确保您的互联网连接稳定,并且您可以通过浏览器毫无问题地访问 Kickstarter 网站。
防火墙或防病毒设置
有时,防火墙或防病毒软件可能会阻止脚本建立的连接。检查您的防火墙或防病毒软件是否阻止了 Python 或 ChromeDriver。
更新 Chrome 和 ChromeDriver
确保您的 Google Chrome 浏览器和 ChromeDriver 都是最新的。版本不匹配可能会导致连接问题。您可以从这里下载最新版本的 ChromeDriver。
使用代理或VPN
如果 Kickstarter 阻止来自某些 IP 地址的请求,请考虑使用代理或 VPN 来更改您的 IP 地址。这可以帮助绕过任何限制。
修改您的代码
有时,添加用户代理字符串可以帮助模仿常规浏览器请求。您可以像这样修改您的选项:
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")
检查验证码或机器人防护
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()
结论
尝试这些建议,看看它们是否能解决您的问题。如果您仍然遇到问题,请分享您遇到的任何其他错误消息,我们可以进一步排除故障。