Я запускаю ваш код, распечатывая исходный код url. Вот результаты:
<Response [404]>
<Response [404]>
Как видите, мы не можем получить никакого ответа. Вы также можете попробовать подключить эти ссылки из своего браузера, вы получите ошибку 404. Проблема в том, что таких веб-страниц нет.
Но с вашим кодом нет проблем, кроме URL-адресов. Например, это ваш код, отредактированный мной. Я прокомментировал код.
from bs4 import BeautifulSoup
import requests
def webscrawling(max_page):
page = 1;
while page <= max_page:
url = "https://webscraper.io/test-sites/e-commerce/allinone" #this is a valid url if we remove the page
sourcecode = requests.get(url)
print(sourcecode) #i printed this for knowing the response from server (200 means OK)
plaintext = sourcecode.text
soup = BeautifulSoup(plaintext, "html.parser")
for link in soup.findAll('a',{'class' : 'title'}):
show = link.get('href')
print(show)
page+=1
webscrawling(1)
, а вот результат отредактированного кода:
<Response [200]>
/test-sites/e-commerce/allinone/product/219
/test-sites/e-commerce/allinone/product/296
/test-sites/e-commerce/allinone/product/286
Изменить: Хорошо, сайт существует. Мы можем go через этот сайт «https://webscraper.io/test-sites/e-commerce/allinone» нет проблем. Но в вашем коде вы не попадете на этот сайт. Вы собираетесь куда-то еще. Ваша программа запрашивает "https://webscraper.io/test-sites/e-commerce/allinone1", разница между ними - последний символ URL-адресов. Для лучшего обзора:
https://webscraper.io/test-sites/e-commerce/allinone
https://webscraper.io/test-sites/e-commerce/allinone1
как видите, между этими ссылками есть разница. Ваша программа инициализирует URL-адрес в этой строке:
url = "https://webscraper.io/test-sites/e-commerce/allinone"+str(page)
, как вы можете видеть, у вас есть str (page) в конце URL-адреса. Что и есть причина нашей проблемы. Если вы удалите + str (page) из этой строки
url = "https://webscraper.io/test-sites/e-commerce/allinone"
, URL-адрес будет правильным.