一起学python-2发现群组-文章抓取过滤格式

接到上页 https://blog.csdn.net/naner3344/article/details/81146518 我们已经把文章清单列表抓取了,接下来我们就是逐一抓取文章

抓取文章内容比上页还要简单些,但是一抓下来发现里面混了很多html标签

这个里面大部分都是html标签, 比较麻烦,尝试了很多种方法去除都不是很好,最后看见别人用正则表达式,试了一下效果很好

 pattern = re.compile(r'<[^>]+>', re.S)
    result = pattern.sub('', str(html))

效果图

基本还行吧,但是还有些特殊的东西如 &nbsp 这种东西在网页里面是解析成空格,但是爬虫不知道,这个需要后面改,先那样吧。 

然后开爬,代码走起

#python 3
# encoding: utf-8
import sys
import io
import requests
from bs4 import BeautifulSoup
import re

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8') #改变标准输出的默认编码
def getrequest(url):
 s=requests.session()
 headers={
    'Accept': 'text/plain, */*; q=0.01',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    'Cache-Control': 'max-age=0',
    'Connection': 'keep-alive',
    'Host': 'eip.teamshub.com',
    'Referer': 'http://eip.teamshub.com/',
     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0'
 }
 cookies={
     'JSESSIONID': 'BE30CEC4A6A627660E088017B92AE337'}
 rs=s.get(url,headers=headers,cookies=cookies,verify=False)

 return rs.text

def htmlparse(rs):
    soup = BeautifulSoup(rs,  # HTML文档字符串
                         'html.parser'  # HTML解析器
                         )

    # 查找已经获取a标签节点中所有连接
    content = soup.find_all('div',{'style': 'display:none'});
    return content[0]


def cleanHtml(html):
    if html == "": return ""

    pattern = re.compile(r'<[^>]+>', re.S)
    result = pattern.sub('', str(html))
    return result






feedlist=[line for line in open('urllist.txt', 'r', encoding='utf-8')]
for feedurl in feedlist:
  try:
    url=feedurl.split("\t")[2]
    print(url)
    rstext = getrequest(url)
    content = htmlparse(rstext)
    result = cleanHtml(content)
    out = open('E:\\blog\\70171506\\'+url.split("/t/")[1]+'.txt', 'w', encoding='utf-8')
    out.write(result)
  except:
    print ('Failed to parse feed %s' % feedurl)

最终从21点29抓取到22点54才完全结束,一共5070篇文章,耗时约1个半小时。

扫描二维码关注公众号,回复: 2351090 查看本文章

数据源抓取基本完成,值得学习的是正则表达式确实强悍,是数据还是存在一些不够完美,需要精细化操作,不过从大数据分析的角度来看,只要不影响到结局就可以忽略,另外从耗时来看,是单线程,如果改成多线程,效率应该能翻倍。

暂且这样,本文文章处理暂时告一段落,一下文是对现有文章进行分词,并提取公共词汇形成矩阵。

猜你喜欢

转载自blog.csdn.net/naner3344/article/details/81164883
今日推荐