解析网址时,Beautiful Soup不会输出任何内容

时间:2020-05-15 14:18:12

标签: python html beautifulsoup web-crawler

我编写了一个函数来解析archivesNDTV News中的文章URL。它返回None输出,而不是URL列表。为什么返回无?

TwoDPoint Class

因此,解析功能会在NDTV的每天存档中循环并获取URL。因此, def parse_ndtv_archive_links(): url_count=0 links = [] url = makeURL() while (url_count < len(url)): page=requests.get(url[url_count]).text soup=BeautifulSoup(page,'lxml') section=soup.find('div', id="main-content") for a in section.findAll('li'): href=a.get('href') links.append(href) url_count += 1 return list(links) print(parse_ndtv_archive_links()) 函数会生成一段时间内的存档URL列表。

1 个答案:

答案 0 :(得分:1)

这是因为在变量a中没有存储标签<a>,但是标签<li>和标签<li>没有属性href。解决这个问题的一种方法就是这样。

for li in section.findAll('li'):
    href=li.a.get('href')
    links.append(href)

编辑:现在间隔几天

import requests
from bs4 import BeautifulSoup

urls = ['http://archives.ndtv.com/articles/2020-05.html']
for url in urls:
    current_day = 1
    page = requests.get(url).text
    soup = BeautifulSoup(page, 'lxml')
    days = soup.find('div', {'id': 'main-content'}).find_all('ul')
    links = {day_num: [] for day_num in range(1, len(days)+1)}
    for day in days:
        for li in day.findAll('li'):
            href = li.a.get('href')
            links[current_day].append(href)
        current_day += 1
print(links)

结果存储在字典links中,其中key是月中的天数,值是链接列表。该词典仅包含一个月的天数,如果您希望将数据存储一个月以上,则需要将该代码存储一周。