1. 程式人生 > >爬取新聞列表

爬取新聞列表

所有 部門 parser rom .gz nco sele clas int

  1. 獲取單條新聞的#標題#鏈接#時間#來源#內容 #點擊次數,並包裝成一個函數。
  2. 獲取一個新聞列表頁的所有新聞的上述詳情,並包裝成一個函數。
  3. 獲取所有新聞列表頁的網址,調用上述函數。
  4. 完成所有校園新聞的爬取工作。
    import requests
    import re
    from bs4 import BeautifulSoup
    url=http://news.gzcc.cn/html/xiaoyuanxinwen/
    res=requests.get(url)
    res.encoding=utf-8
    soup=BeautifulSoup(res.text,html.parser)
    li=soup.select(
    li) def get(gzcc): dj=re.search(_.*/(.*).html,gzcc).groups(0)[0] djcs=int(requests.get(http://oa.gzcc.cn/api.php?op=count&id={}&modelid=80.format(dj)).text.split(.)[-1].lstrip("html(‘").rstrip("‘);")) return djcs def sss(label): for news in label: if len(news.
    select(
    .news-list-title))>0: title=news.select(.news-list-title)[0].text #標題 time=news.select(.news-list-info)[0].contents[0].text#時間 url1=news.select(a)[0][href]#url bumen=news.select(.news-list-info)[0].contents[1].text#部門 description=news.select(
    .news-list-description)[0].text #描述 cs=get(url1) print(time,title,url,cs) sss(li) pages=int(soup.select(.a1)[0].text.rstrip())//10+1 for list in range(2,pages+1): pageurl="http://news.gzcc.cn/html/xiaoyuanxinwen/{}.html".format(list) pageres=requests.get(pageurl) pageres.encoding=utf-8 pagesoup=BeautifulSoup(pageres.text,html.parser) pagelist=pagesoup.select(li) sss(pagelist) break

    技術分享

  5. 完成自己所選其他主題相應數據的爬取工作。
    import requests
    import re
    from bs4 import BeautifulSoup
    url=http://news.szu.edu.cn/xyxw/sdyw.htm
    res=requests.get(url)
    res.encoding=utf-8
    soup=BeautifulSoup(res.text,html.parser)
    li=soup.select(li)
    
    def get(shenda):
        dj=re.search(_.*/(.*).htm,shenda).groups(0)[0]
        djcs=int(requests.get(http://news.szu.edu.cn/info/1003/{}.htm.format(dj)).text.split(.)[-1].lstrip("html(‘").rstrip("‘);"))
        return djcs
    
    def sd(label):
        for news in label:
            if len(news.select(._blank))>0:
                title=news.select(._blank)[0].text
                time=news.select(._blank).contents[0].text
                url1=news.select(a)
    
                cs=get(url1)
                print(time,title,url,cs)
    sd(li)
    
    pages=int(soup.select(.left)[0].text.rstrip())//10+1
    for list in range(2,pages+1):
        pageurl="http://news.szu.edu.cn/xyxw/sdyw/{}.htm".format(list)
        pageres=requests.get(pageurl)
        pageres.encoding=utf-8
        pagesoup=BeautifulSoup(pageres.text,html.parser)
        pagelist=pagesoup.select(li)
        sd(pagelist)
        break

爬取新聞列表