爬虫机试题-爬取新闻网站

这篇具有很好参考价值的文章主要介绍了爬虫机试题-爬取新闻网站。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前投简历时遇到了这样的一个笔试。本以为会是数据结构算法之类的没想到直接发了一个word直接提需求,感觉挺有意思就写了这篇文章,感兴趣的朋友可以看看。

爬虫机试题-爬取新闻网站,Pyhon,爬虫

爬虫机试题-爬取新闻网站,Pyhon,爬虫

拿到urllist

通过分析页面结构我们得以知道,这个页面本身没有新闻信息,是由js代码执行后才将信息插入到html中的,因此我们request拿到的代码是js执行前的代码,我们需要通过解析js代码来拿到想要的信息。

response = requests.get(url)
response.encoding = 'utf-8'
html_content = response.text
# print(html_content)
soup = BeautifulSoup(html_content, 'html.parser')
tag = soup.findAll('script')
# print(tag[9].text)
# 使用正则表达式匹配JavaScript代码中的item数组内容
pattern = re.compile(r"item[\d+]=new title_array('([^']+)','([^']+)','([^']+)');")
# 提取item数组中的数据
matches = pattern.findall(tag[9].text)
# 处理前15个匹配项
for i, match in enumerate(matches[:15], 1):
    url, title, date = match
    print("URL:", url)
    print("Title:", title)
    print("Date:", date)

这段代码用于从首页提取新闻标题、链接和日期信息。它首先发送HTTP请求获取网页内容,然后使用BeautifulSoup库解析HTML文档。接着,通过正则表达式匹配JavaScript代码中的新闻数据,提取出匹配项,包括URL、标题和日期。最后,使用循环遍历这些匹配项,并打印输出每一条新闻的URL、标题和日期。


之后再进入详情页去拿到具体的内容。

获取详情页内容


在详情页中可以看出来,所有的正文信息都在p标签中,因此只需拿到p标签中的信息再进行筛选即可。

def get_detailed(url,title,date):
    response = requests.get(url)
    response.encoding = 'utf-8'
    html_content = response.text
    # print(html_content)
    soup = BeautifulSoup(html_content, 'html.parser')
    # 使用CSS选择器定位元素
    element = soup.findAll("p")
    # 输出找到的元素
    # print(element[15:])
    data=''
    data=data+title+'\n'+date+'\n'
    for i in element[15:]:
        data=i.text+data
    print(data)

这个函数用于获取新闻的详细内容。它接收新闻的URL、标题和日期作为参数,并通过发送HTTP请求获取新闻页面的HTML内容。然后,使用BeautifulSoup库解析HTML文档,定位到新闻内容所在的段落元素。接着,将标题和日期添加到数据字符串中,并遍历段落元素,将每个段落的文本内容添加到数据字符串中。最后,将完整的新闻内容打印输出。文章来源地址https://www.toymoban.com/news/detail-857398.html

代码

# Author: 冷月半明
# Date: 2024/4/4
# Description: This script does XYZ.
import re

import requests
from bs4 import BeautifulSoup

def get_detailed(url,title,date):
    response = requests.get(url)
    response.encoding = 'utf-8'
    html_content = response.text
    # print(html_content)
    soup = BeautifulSoup(html_content, 'html.parser')
    # 使用CSS选择器定位元素
    element = soup.findAll("p")
    # 输出找到的元素
    # print(element[15:])
    data=''
    data=data+title+'\n'+date+'\n'
    for i in element[15:]:
        data=i.text+data
    print(data)

url = '*************************'
response = requests.get(url)
response.encoding = 'utf-8'
html_content = response.text
# print(html_content)
soup = BeautifulSoup(html_content, 'html.parser')
tag = soup.findAll('script')
# print(tag[9].text)
# 使用正则表达式匹配JavaScript代码中的item数组内容
pattern = re.compile(r"item[\d+]=new title_array('([^']+)','([^']+)','([^']+)');")
# 提取item数组中的数据
matches = pattern.findall(tag[9].text)
# 处理前15个匹配项
for i, match in enumerate(matches[:15], 1):
    url, title, date = match
    print("URL:", url)
    print("Title:", title)
    print("Date:", date)
    # 调用get_detailed函数
    get_detailed(url, title,date)

到了这里,关于爬虫机试题-爬取新闻网站的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【爬虫】python爬虫爬取网站页面(基础讲解)

    👉博__主👈:米码收割机 👉技__能👈:C++/Python语言 👉公众号👈:测试开发自动化【获取源码+商业合作】 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 1. 导入必要的库 requests 库用于发送HTTP请

    2024年02月08日
    浏览(45)
  • Python爬虫入门:使用selenium库,webdriver库模拟浏览器爬虫,模拟用户爬虫,爬取网站内文章数据,循环爬取网站全部数据。

    *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。 目录 准备工具: 思路: 具体操作: 调用需要的库: 启动浏览器驱动: 代码主体:  完整代码(解析注释): Python环境; 安装selenium库; Python编辑器; 待爬取的网站; 安装好的浏览器; 与浏览器版本相对应的

    2023年04月24日
    浏览(57)
  • 【爬虫】3.4 爬取网站复杂数据

    进一步把前面的Web网站的mysql.html, python.html, java.html丰富其中 的内容,并加上图形: mysql.html java.html python.html 服务器 server.py 程序还是前面3.2的,如下:         爬取网站中的mysql, python, java的简介与图像。我们看到简介在网页的第一个div中,图像在img中,而且只有这3个网

    2024年02月08日
    浏览(46)
  • 爬虫源码---爬取小猫猫交易网站

    前言: 本片文章主要对爬虫爬取网页数据来进行一个简单的解答,对与其中的数据来进行一个爬取。 Python版本:3.7.3 IDE:PyCharm 所需库:requests ,parsel  我们需要获取以下数据: \\\'地区\\\', \\\'店名\\\', \\\'标题\\\', \\\'价格\\\', \\\'浏览次数\\\', \\\'卖家承诺\\\', \\\'在售只数\\\', \\\'年龄\\\', \\\'品种\\\', \\\'预防\\\', 

    2024年02月10日
    浏览(60)
  • 【爬虫系列】Python爬虫实战--招聘网站的职位信息爬取

    1. 需求分析 从网上找工作,大家一般都会通过各种招聘网站去检索相关信息,今天利用爬虫采集招聘网站的职位信息,比如岗位名称,岗位要求,薪资,公司名称,公司规模,公司位置,福利待遇等最为关心的内容。在采集和解析完成后,使用 Excel 或 csv 文件保存。 2. 目标

    2024年02月02日
    浏览(52)
  • selenium爬虫框架爬取某壁纸网站

    基础知识 环境配置 开始爬虫 简单分析目标网站 写函数 获取浏览器对象: 下载每一张图片: 获取每一页的源代码: 运行print_result_every_page python基础语法 面向对象基础 html基础 xpath基础 selenium框架的基本使用 request库 lxml库      3.安装浏览器xpath插件         打开谷歌浏览

    2024年02月05日
    浏览(43)
  • 《python爬虫练习2》爬取网站表情包

    运行环境: 1.分析: 目标网址:https://www.runoob.com/ 首先想要获取什么就从哪里入手,打开图所在的网页,F12查看代码的内容,此处抓取的是资源文件,爬取中发现ajax类型的文件加载出来的无法知道图片的源地址所以暂时不能用这种方式获取。因此可以生成第一步的代码。

    2024年02月01日
    浏览(43)
  • Python爬虫:如何使用Python爬取网站数据

    更新:2023-08-13 15:30 想要获取网站的数据?使用Python爬虫是一个绝佳的选择。Python爬虫是通过自动化程序来提取互联网上的信息。本文章将会详细介绍Python爬虫的相关技术。 在使用Python爬虫之前,我们需要理解网络协议和请求。HTTP是网络传输的重要协议,它是在Web浏览器和

    2024年02月13日
    浏览(48)
  • 【爬虫】3.5 实践项目——爬取网站的图像文件

            指定一个网站(例如中国天气网站),可以爬取这个网站中的所有图像文件,同时把这些文件保存到程序所在文件夹的images子文件夹中。 首先设计了一个 单线程 的爬取程序,这个程序 会因网站的某个图像下载过程缓慢而效率低下 ,为了提高爬取的效率,另外设

    2024年02月07日
    浏览(43)
  • 【爬虫】4.5 实践项目——爬取当当网站图书数据

    目录 1. 网站图书数据分析 2. 网站图书数据提取 3. 网站图书数据爬取 (1)创建 MySQL 数据库 (2)创建 scrapy 项目 (3)编写 items.py 中的数据项目类 (4)编写 pipelines_1.py 中的数据处理类 (5)编写 pipelines_2.py 中的数据处理类 (6)编写 Scrapy 的配置文件 (7)编写 Scrapy 爬虫程

    2024年02月07日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包