【网络信息资源】简易爬行器的设计

目录

1 实验目的

2 实验内容

3 实验步骤

3.1 查看网页源代码

3.2 源代码

4 运行结果分析


1 实验目的

了解爬行器的工作原理

2 实验内容

设计一个简易的爬行器,能爬取网页的内容和超链接

3 实验步骤

3.1 查看网页源代码

选择需要的网页→右键→查看页面源代码→明确网页源代码的组成

【网络信息资源】简易爬行器的设计_第1张图片

3.2 源代码

  1. 构造请求的URL,并通过发送HTTP请求获取HTML页面内容。
  2. 使用Beautiful Soup库解析HTML页面内容,提取出所需的信息。
  3. 将提取出的信息存储到文本文件中。
import random

import urllib.request

from bs4 import BeautifulSoup

import codecs

from time import sleep

def main(url,headers):

    page = urllib.request.Request(url,headers=headers)

    page = urllib.request.urlopen(page)

    contents = page.read()

    soup = BeautifulSoup(contents,"html.parser")

    infofile.write("")

    print('爬取豆瓣电影250: \n')



    for tag in soup.find_all(attrs={"class": "item"}):

        # 爬取序号

        num = tag.find('em').get_text()

        print(num)

        infofile.write(num + "\r\n")

        # 电影名称

        name = tag.find_all(attrs={"class": "title"})

        zwname = name[0].get_text()

        print('[中文名称]', zwname)

        infofile.write("[中文名称]" + zwname + "\r\n")

        # 网页链接

        url_movie = tag.find(attrs={"class": "hd"}).a

        urls = url_movie.attrs['href']

        print('[网页链接]', urls)

        infofile.write("[网页链接]" + urls + "\r\n")

        # 爬取评分和评论数

        info = tag.find(attrs={"class": "star"}).get_text()

        info = info.replace('\n', ' ')

        info = info.lstrip()

        print('[评分评论]', info)

        # 获取评语

        info = tag.find(attrs={"class": "inq"})

        if (info):  # 避免没有影评调用get_text()报错

            content = info.get_text()

            print('[影评]', content)

            infofile.write(u"[影评]" + content + "\r\n")

        print('')



if __name__ == '__main__':

    infofile=codecs.open("豆瓣电影top250.txt",'a','utf-8')

    headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome /67.0.3396.99 Safari/537

你可能感兴趣的:(网络信息资源,网络协议,网络,爬虫,网络爬虫)