Как получить текстовые абзацы с веб-сайта: ошибка 403 запрещена - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь выполнить очистку веб-страниц с помощью requests и BeautifulSoup. Но желаемый результат - null. Мой код выглядит следующим образом:

def urlscrape(url):
    page = requests.get(url).text
    soup = BeautifulSoup(page, 'html')
    text = [p.text for p in soup.find(class_='bg-white').find_all('p')]
    print(url)
    return text

Веб-сайт: https://www.afghanistan-analysts.org/en/reports/war-and-peace/taleban-prisoners-release-are-the-latest-proposals-legal/

Я хочу, чтобы все теги <p>, содержащие абзацы, были извлечены в виде текстов.

Ответы [ 2 ]

1 голос
/ 15 марта 2020

Попробуйте это ...

url="https://www.afghanistan-analysts.org/en/reports/war-and-peace/taleban-prisoners-release-are-the-latest-proposals-legal/"
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
headers = {'User-Agent': user_agent}
response = requests.get(url,headers=headers)
html = response.content
print(response.content)
1 голос
/ 15 марта 2020

Вы можете попробовать это: -

from bs4 import BeautifulSoup
import requests
import pandas as pd
headers = {
    "Connection": "keep-alive",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
}
url = 'https://www.afghanistan-analysts.org/en/reports/war-and-peace/taleban-prisoners-release-are-the-latest-proposals-legal/'
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.text, 'html')
text = [p.text for p in soup.find_all('p')]
...