Очистка нескольких страниц с Python и BeautifulSoup - PullRequest
1 голос
/ 02 февраля 2020

Я пытаюсь очистить многие страницы в Python, используя BeautifulSoup, но без положительных результатов.

Я пытался использовать request.get() и session.get(). Количество страниц, которые я должен почистить, равно 92.

import requests
from bs4 import BeautifulSoup
import urllib.request
with requests.Session as session:
    count = 0
    for i in range(92):
        count+=1
        page = "https://www.paginegialle.it/lazio/roma/dentisti/p-"+str(count)+".html"
        r = session.get(page)
        soup = BeautifulSoup(r.content)

При использовании print(page) страница форматируется в основном. Но при выполнении soup для печати всех значений, хранящихся в переменной, печатаются только значения первой страницы. Я использую ноутбук Jupyter

Ответы [ 3 ]

1 голос
/ 02 февраля 2020

Вы можете сделать, как показано ниже:

import requests
from bs4 import BeautifulSoup
import urllib.request

for i in range(92):
    url = "https://www.paginegialle.it/lazio/roma/dentisti/p-"+str(i)+".html"
    r = requests.get(url)
    soup = BeautifulSoup(r.content, 'html.parser')
    p = soup.select('p')
    print(len(p))

enter image description here

0 голосов
/ 02 февраля 2020

Другое решение.

from simplified_scrapy.request import req
from simplified_scrapy.simplified_doc import SimplifiedDoc
count = 0
for i in range(92):
    count+=1
    html = req.get('https://www.paginegialle.it/lazio/roma/dentisti/p-'+str(i)+'.html') 
    doc = SimplifiedDoc(html)
    print(doc.select('title>text()'))
print (count)
0 голосов
/ 02 февраля 2020

Это будет работать.

from bs4 import BeautifulSoup
import requests

count = 0
for i in range(92):
   count +=1
   source1 = requests.get("https://www.paginegialle.it/lazio/roma/dentisti/p-"+str(count)+".html").text 

   soup1 = BeautifulSoup(source1, 'lxml')

   print(soup1.body)
   print()
print("done")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...