我可以使用Python美丽的汤模块从网站供稿URL中提取新闻。但是,假设该网站没有供稿,我需要每天从中提取新闻文章,就好像它有饲料一样。
网站https://www.jugantor.com/没有供稿。即使通过谷歌搜索,我也找不到任何东西。使用以下代码段,我尝试从网站提取链接。结果显示了诸如'http://epaper.jugantor.com'之类的链接。,但网站上出现的新闻项目也不包括在提取的链接中。
我的代码:
from bs4 import BeautifulSoup
from urllib.request import Request, urlopen
import re
def getLinks(url):
USER_AGENT = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5'
request = Request(url)
request.add_header('User-Agent', USER_AGENT)
response = urlopen(request)
content = response.read().decode('utf-8')
response.close()
soup = BeautifulSoup(content, "html.parser")
links = []
for link in soup.findAll('a', attrs={'href': re.compile("^http://")}):
links.append(link.get('href'))
return links
print(getLinks("https://www.jugantor.com/"))
显然,这不能达到预期目的。我每天都需要" https://www.jugantor.com/"的所有新闻文章链接,好像我从提要中获取它们一样。我可以每天使用Cron工作来运行脚本。但是,挑战仍然是确定在特定日期发表的所有文章,然后提取它们。
我该怎么做?任何Python模块或算法等?
n.b:这里存在一个有点相似的问题,没有提到提要是解析源。似乎OP从页面上提取文章将其列出为文本的页面快照。与这个问题不同,我的问题重点是没有任何提要的网站。而存在的唯一答案并未解决此问题。
我不确定正确理解,但是我看到的第一件事是 {'href': re.compile("^http://")}
。
您会错过所有https
和相对链接。亲戚链接可以在这里跳过而没有任何问题(我想..(,但显然不是https
。所以第一件事:
{'href': re.compile("^https?://")}
然后,为了避免每天下载和解析相同的URL,您可以提取文章的ID(在https://www.jugantor.com/lifestyle/19519/%E0%...A7%87
ID中是19519
(,将其保存在数据库中,然后首先验证是否存在ID之前,请先删除页面。/p>
最后一件事,我不确定这是否有用,但是此URL https://www.jugantor.com/todays-paper/让我认为您只能找到今天的新闻。