Извлечение ссылок из HTML по ссылке следующего сайта - PullRequest
0 голосов
/ 21 февраля 2019

Я хочу извлечь ссылку

/stocks/company_info/stock_news.php?sc_id=CHC&scat=&pageno=2&next=0&durationType=Y&Year=2018&duration=1&news_type=

из html страницы

http://www.moneycontrol.com/company-article/piramalenterprises/news/PH05#PH05

Ниже приведен код, который используется

url_list = "http://www.moneycontrol.com/company-article/piramalenterprises/news/PH05#PH05"
html = requests.get(url_list)
soup = BeautifulSoup(html.text,'html.parser')
link = soup.find_all('a')
print(link)

используя красивый суп.Как бы я это сделал, использование find_all ('a ") не возвращает необходимую ссылку в возвращенном html.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Пожалуйста, попробуйте это, чтобы получить Точный URL, который вы хотите.

import bs4 as bs
import requests
import re


sauce = requests.get('https://www.moneycontrol.com/stocks/company_info/stock_news.php?sc_id=CHC&durationType=Y&Year=2018')

soup = bs.BeautifulSoup(sauce.text, 'html.parser')

for a in soup.find_all('a', href=re.compile("company_info")):
   # print(a['href'])
    if 'pageno' in a['href']:
        print(a['href'])

вывод:

/stocks/company_info/stock_news.php?sc_id=CHC&scat=&pageno=2&next=0&durationType=Y&Year=2018&duration=1&news_type=
/stocks/company_info/stock_news.php?sc_id=CHC&scat=&pageno=3&next=0&durationType=Y&Year=2018&duration=1&news_type=
0 голосов
/ 21 февраля 2019

Вам просто нужно использовать метод get, чтобы найти атрибут href:

from bs4 import BeautifulSoup as soup
import requests

url_list = "http://www.moneycontrol.com/company-article/piramalenterprises/news/PH05#PH05"
html = requests.get(url_list)
page= soup(html.text,'html.parser')
link = page.find_all('a')
for l in link:
    print(l.get('href'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...