【问题标题】:Selenium, BeatifulSoup, Requests in a loopSelenium,BeautifulSoup,循环请求
【发布时间】:2018-08-25 02:49:22
【问题描述】:

我只是好奇,因为我正在尝试学习 python。我正在从网站中提取数据。无论如何,我所做的是滚动页面,然后获取与 URL 对应的标题,并在循环中请求此 URL 并使用 BS 提取它。显然,它不起作用,我请求的 HTML 打印如下:

<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx</center>
</body>
</html>

这是python代码

import time
import requests

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup as soup

chromedriver = "/Users/eduardfossas/Downloads/chromedriver"
driver = webdriver.Chrome(chromedriver)

my_url = driver.get("https://wodwell.com/wods/?sort=newest&category=none&feeds=736")
time.sleep(1)

elem = driver.find_element_by_tag_name("body")

no_of_pagedowns = 20

while no_of_pagedowns:
    elem.send_keys(Keys.PAGE_DOWN)
    time.sleep(0)
    no_of_pagedowns-=1

containers = driver.find_elements_by_class_name('wod-title')

for container in containers:

    my_sub_url = "https://wodwell.com/wod/"
    my_sub_url = my_sub_url + container.text + '/'
    page_html = requests.get(my_sub_url).text

    page_soup = soup(page_html, "html.parser")

    main_text = page_soup.select('.workout-list')

有什么方法可以让 BeatifulSoup 和 requests 工作?如果没有,我想我会尝试 Scrapy。

你有什么推荐的?

诚挚的问候,非常感谢。

【问题讨论】:

  • 您的请求似乎因 403 错误而失败。它在我的系统上运行良好。
  • @ggorlen 你在用什么操作系统?我在高山脉的 macOS 上。您是否尝试打印 var main_text?谢谢!
  • 它与操作系统无关,因为它与请求协议有关。有时这也取决于您的地理位置。 @user1888427 你来自哪里?
  • @ggorlen,成功了!我必须为 chrome headers = {'user-agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'} page_html = requests. get(my_sub_url, headers = headers).text

标签: python selenium python-requests


【解决方案1】:

这从未发生在我身上。

也许它对某人有用,它在指定标题后立即起作用:

headers = {'user-agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'}
page_html = requests.get(my_sub_url, headers = headers).text

【讨论】:

    猜你喜欢
    • 2019-05-26
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    相关资源
    最近更新 更多