利用python爬虫结合前端技能实现经济学人(The Economist)阅时即查APP(00)

本系列博客将分为以下几篇:

  • 001、python爬取主页,获取最新文章列表
  • 010、python爬取文章列表,归档为本地文件
  • 011、python实现数据清洗,过滤出每篇文章中有一定难度的单词
  • 100、python分别从有道、必应爬取每篇文章中一定难度单词的发音、解释、短语、例句等信息,首选有道,有道失败必应上,实在不行调用扇贝查词API
  • 101、根据文章,以及爬取的对应单词解析文件,生成最终可供请求的json文件
  • 110、前端逻辑简单梳理

先上一下最新的视觉:

带有info标记的单词就是过滤出的有难度的单词,点击即可查看翻译、发音、例句、短语等。

这里写图片描述

00、python爬取主页,获取最新文章列表

1、分析要爬取的网页结构,注意不要在浏览器中直接访问,因为直接访问的文档结构可能是被javascript经过DOM操作改变过的,要将爬取的内容保存为html文件然后在浏览器中打开进行分析

import re
import urllib.request
from lxml import etree


headers = {'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',}

url = 'https://economist.com'

def getLatestPapers(url):
    req = urllib.request.Request(url=url,headers=headers, method='GET')
    response = urllib.request.urlopen(req)
    html = response.read()
    with open('economist.html','wb')as fe:
        fe.write(html)

保存下来后打开网页进行检查:
这里写图片描述

2、根据分析结果构造路径:

papersPath='/html/body/div[1]/div[1]/div[1]/div[2]/div[1]/main[1]/div[1]/div[1]/div[1]/div[3]/ul[1]/li'
根据以上规则进行选择就能获取一个内容列表了

3、提取每篇文章的链接以及标题

    art=selector.xpath(papersPath)
    awithtext = []
    try:
        for li in art:
            h3 = li.xpath('article[1]/a[1]/div[1]/h3[1]/text()')#获取标题
            alink = li.xpath('article[1]/a[1]/@href')#获取链接
            awithtext.append([alink [0],h3[0]])#构造一个二维列表,每个item包含链接以及对应的标题,这样我们就有了要进一步爬取的目标了
    except Exception as err:
        print(err)
    finally:
        return awithtext

此篇OVER,请扫码进入阅时即查体验模式:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/lockey23/article/details/80140443
今日推荐