资源简介

爬取百度新闻的新闻,并可以进行主题搜索,搜索结果按照主题相关度进行排序

资源截图

代码片段和文件信息

# -*- coding:utf-8 -*-


import urllib    
import re    
import time
import urllib
import os
from urllib import request


#创建爬取类,并申明相关属性和方法

class News:
    #class具体的属性及函数
    def __init__(selfurl):
        httpobj = request.urlopen(url)
        #read()读取url信息
        html = httpobj.read()
        #网页编码格式为gb2312
        htmltext = html.decode(‘gb2312‘‘ignore‘) 
        #正则表达式匹配新闻标题
        pat = ‘]*)“ mon=“[^>“]*“ target=“[^>“]*“>([^>#]*)‘ 
        result = re.findall(pathtmltext)
        pat =‘]*)“ target=“[^>“]*“ class=“[^>“]*“ mon=“[^>“]*“>([^>#]*)‘
        added = re.findall(pathtmltext)
        result.extend(added)
        pat =‘]*)“ target=“[^>“]*“  mon=“[^>“]*“>([^>#]*)‘
        added = re.findall(pathtmltext)
        result.extend(added)
        se = set(result)
        result = list(se)
        #replace()将文章标题中的quot取消
        #将匹配出的标题和URL加入到data列表中
        self.data = [[item[0]item[1].replace(‘"‘‘“‘)] for item in result]
      
      
    #提取关键字,并将包含关键字的标题加入到target列表当中    
    def key(self):
        self.key =input(“输入关键字:“)
        self.target = []
        for item in self.data :
            if self.key in item[1]:
                self.target.append(item)
        #返回与关键字相关的新闻个数        
        return len(self.target)
    
    
    #访问匹配到的新闻信息
    def visit(self):
        for i in range(len(self.target)):
            url = self.target[i][0]
            httpobj = request.urlopen(url)
            html = httpobj.read()
            #百度新闻网页的编码格式为gb2312
            htmltext = html.decode(‘gb2312‘‘ignore‘) 
            #相关度匹配
            #在新闻全文当中匹配关键

评论

共有 条评论