爬虫实战练习 - 3 - 爬取虎扑新闻

自己的站点准备进入部署阶段了,不过内容很少,自己也没空每天去创建新文章,所以自己写了个爬虫,去爬取hupu的每天新闻,这样就省得我去每天更新网站了。

1:找网站的切入口

爬虫实战练习 - 3 - 爬取虎扑新闻_第1张图片
用开发者工具找网址

2:编写程序

def collect_urls():

    #我们以火箭队页面的新闻连接处为入口
    page = 'https://nba.hupu.com/teams/rockets'
    req = requests.get(page)
    bs = BeautifulSoup(req.text,'html.parser')

    #提取出这个页面上所有新闻的超链接a
    targets = bs.select('div.team_news_a > ul > li > a')
    #用于在后台打印获得的超链接地址
    for link in targets:
        print (link['href'])
    #返回这个地址的集合,列表形式
    return targets

def scrawl_info():
    #调用上面的函数,来得到地址集合
    urls = collect_urls()
    for url in urls:
        #遍历每个地址
        req = requests.get(url['href'])
        bs = BeautifulSoup(req.text,'html.parser')
        #获取文章的题目
        article_title = bs.find('h1','headline').get_text()
        #定义文章的内容为字符串
        article_content = ''
        #将文章内部所有的p,都加载到文章的内容里去
        content = bs.select('div.artical-main-content > p')
        for c in content:
            article_content += c.get_text()
        #操作数据库,创建新文章
        imported_article = Article.objects.create(article_title=article_title,article_content=article_content,user_id=1,team_id=1)
        print (article_title)
        print (article_content)
        time.sleep(60)

    return 'well done'

3:效果

如下图


爬虫实战练习 - 3 - 爬取虎扑新闻_第2张图片
抓取结果的后台显示

你可能感兴趣的:(爬虫实战练习 - 3 - 爬取虎扑新闻)