首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Coding
V2EX  ›  Python

请教大佬个问题,爬虫爬取新闻,如何记录新闻内容和图片的相对位置

  •  
  •   zhanbiqiyu · 123 天前 · 1561 次点击
    这是一个创建于 123 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如一个新闻网站个结构如下:

    <title>title</title>

    some text

    像这种图片和文本交叉的 html,如何记录图片和新闻内容的相对位置呢,我希望得到这样的结果

    text1

    img_url

    text2

    img_url

    img_url

    有没有比较好的方法

    11 回复  |  直到 2019-09-02 15:54:19 +08:00
        1
    AX5N   123 天前
    都快 2020 年了,还有韩粉
        2
    favourstreet   123 天前 via Android
    楼主前端知识过关却还来问这种问题的话应该是想取巧,但是我也不知道这种事怎么取巧,所以当一回老实人告诉楼主:文档对象模型,楼主需要解析 DO ……不对,更适合楼主的答案应该是,用数组!对,字符串数组,你看你给出的希望的结果不是字符串数组吗……
        3
    AX5N   123 天前
    相对位置是渲染出来的相对位置,还是代码的相对位置?
    记录你是想怎么记录,你是想知道正文<p>有哪些兄弟节点?
        4
    axlecho   122 天前 via Android
    不太明白你的目的
    解析成这样,还不如直接保存整个 doc.
        5
    ant2017   122 天前 via Android
    列表?
        6
    annielong   122 天前
    提取内容,输出时候换行,还第一次见要相对位置的
        7
    ZeldaPeach   122 天前
    用 CSS Selector 同时选取图片和文本 img+p
        8
    littlecowherd   122 天前
    **用正则,去掉 HTML 标签,保留标签内文本。**
    想保留图片的话,可以先用正则把 img 标签处理下:
    1. 将<img src="">替换成{img src=""}
    2. 删除 script 和 style 及 comment 等无用标签。
    3. 将标签符号替换为空:re.sub(r'<[\s\S]*?>', "", body)
    这样大概能完成你得需求。如果还想保留换行的话,可以将</p>、<br>等标签替换为换行符,需要在第 3 步之前执行。
        9
    keepeye   122 天前
    先用正则提取出所有 img 标签到一个数组
    再用正则按 img 标签 split 文字内容到一个数组
    然后遍历两个数组,添加到一个新的数组中
        10
    enrolls   116 天前
    1. 去掉无用标签
    2. 定位正文的 dom
    3. 对 dom 进行按 HTML tags 输出
        11
    ChineseOldSober   104 天前
    这个我做过。
    1. 网页直接 dom_str = response.text 处理成一个大字符串;
    2. 将你的段们和图片对应的文字拿出来作为索引的自变量;
    3. 使用字符串的 index()来索引字符串在整个大字符串中的位置,
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   977 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 18:24 · PVG 02:24 · LAX 10:24 · JFK 13:24
    ♥ Do have faith in what you're doing.