Красивый суп возвращает нет, когда я иду на любые другие страницы, отличные от 1 на веб -сайтеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Красивый суп возвращает нет, когда я иду на любые другие страницы, отличные от 1 на веб -сайте

Сообщение Anonymous »

Я делаю проект Python, в котором пользователь может искать стажировку, которую они хотят, и программа будет отображать данные о данных всех стажировок с веб -сайта Internshala, но у меня возникает проблема, которую красивый суп только читает страницу 1, и после этого он не возвращает ни одного. < /p>
import pandas as pd
from bs4 import BeautifulSoup
import requests
import time
a=input("enter the internship position:")
def get_soup(a, pageno="1"):
url = "https://internshala.com/internships/keywords-"
l = a.split()
for n, i in enumerate(l):
if n != len(l) - 1:
url += i + "%20"
else:
url += i + "/"
url += f"page-{pageno}/"

head = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}

req = requests.get(url, headers=head)
soup = BeautifulSoup(req.content, "html.parser")
return soup

def get_pageno():
num=get_soup(a).find("div",class_="page_number heading_6").find_all("a")[-1].text.strip()
return num

def get_info(no):
info={"company":[],"role":[],"location":[],"stipend":[],"duration":[]}
hlo=get_soup(a,pageno=no).find(id="internship_list_container_1")
internships=hlo.find_all(class_="container-fluid individual_internship view_detail_button visibilityTrackerItem")
for i in internships:
company=i.find("p",class_="company-name").text.strip()
role=i.find("a",class_="job-title-href").text.strip()
location=i.find("div",class_="row-1-item locations").find("a").text.strip()
stipend=i.find("span",class_="stipend").text.strip()
duration=i.find_all("div",class_="row-1-item")[2].find("span").text.strip()
info["company"].append(company)
info["role"].append(role)
info["location"].append(location)
info["stipend"].append(stipend)
info["duration"].append(duration)

df=pd.DataFrame(info)
return df
print(get_soup(a))
info={"company":[],"role":[],"location":[],"stipend":[],"duration":[]}
dfm=pd.DataFrame(info)
for i in range(1,int(get_pageno())+1):
dfm=pd.concat([dfm,get_info(i)])
time.sleep(1)
print(dfm)


Подробнее здесь: https://stackoverflow.com/questions/796 ... 1-in-a-web
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»