Python制作简单的网页爬虫

下面我来详细讲解一下Python制作简单的网页爬虫的完整攻略。

步骤一:准备工作

在开始编写网页爬虫之前,我们需要进行一些准备工作。

  • 安装Python:我们需要先安装Python环境,推荐使用Python3以上版本。
  • 安装爬虫库:Python有很多爬虫库,比如requests、BeautifulSoup、Scrapy等,需要根据需要选择合适的进行安装和使用。比较常用的库是requests和BeautifulSoup,可以使用pip进行安装:

    pip install requests
    pip install beautifulsoup4

  • 了解网页结构:在爬取网页信息之前,需要了解所爬取网页的结构,包括HTML标签、CSS选择器等。

步骤二:编写代码

  • 使用requests库进行网页请求,获取网页内容。

```python
import requests

url = "http://www.example.com"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
response = requests.get(url, headers=headers)
content = response.text
```

  • 使用BeautifulSoup库进行网页解析,获取所需要的信息。

```python
from bs4 import BeautifulSoup

soup = BeautifulSoup(content, "html.parser")
title = soup.title.string
links = soup.find_all("a")
for link in links:
print(link.get("href"))
```

以上代码实现了请求网页并获取网页内容,然后使用BeautifulSoup进行解析,并获取网页标题和所有链接。输出结果如下:

http://www.example.com/about
http://www.example.com/contact
http://www.example.com/faq

下面再给一个实际应用的案例。

示例一:爬取豆瓣电影排行榜

以下是爬取豆瓣电影TOP250排行榜的完整代码:

import requests
from bs4 import BeautifulSoup

url = "https://movie.douban.com/top250"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
response = requests.get(url, headers=headers)
content = response.text

soup = BeautifulSoup(content, "html.parser")
items = soup.find_all("div", class_="item")
for item in items:
    title = item.find("span", class_="title").string
    rating = item.find("span", class_="rating_num").string
    print(title + " " + rating)

以上代码实现了请求豆瓣电影TOP250页面并获取网页内容,然后使用BeautifulSoup进行解析,并获取电影名称和评分。输出结果如下:

肖申克的救赎 9.7
霸王别姬 9.6
...

示例二:爬取腾讯新闻列表页

以下是爬取腾讯新闻列表页的完整代码:

import requests
from bs4 import BeautifulSoup

url = "http://news.qq.com/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
response = requests.get(url, headers=headers)
content = response.text

soup = BeautifulSoup(content, "html.parser")
items = soup.find_all("div", class_="Q-tpList")
for item in items:
    title = item.find("a").string
    link = item.find("a").get("href")
    print(title + " " + link)

以上代码实现了请求腾讯新闻页面并获取网页内容,然后使用BeautifulSoup进行解析,并获取新闻标题和链接。输出结果如下:

教育部:专业设置要有常识 功能定位要准确 http://news.qq.com/a/20170824/038413.htm
两万多元的大盘鸡 “高峰”开路费突破3千元 http://news.qq.com/a/20170824/005948.htm
...

步骤三:优化代码

网页爬虫一般需要进行多次请求,我们需要保证代码简洁、稳定。因此需要进行一下优化:

  • 为requests模块设置超时时间
  • 使用异常处理来处理网络连接和解析异常

优化后的豆瓣电影排行榜爬虫代码如下:

import requests
from bs4 import BeautifulSoup

def get_content(url, headers):
    try:
        response = requests.get(url, headers=headers, timeout=30)
        if response.status_code == 200:
            return response.text
        else:
            return None
    except:
        return None

def parse_content(content):
    try:
        soup = BeautifulSoup(content, "html.parser")
        items = soup.find_all("div", class_="item")
        for item in items:
            title = item.find("span", class_="title").string
            rating = item.find("span", class_="rating_num").string
            print(title + " " + rating)
    except:
        pass

url = "https://movie.douban.com/top250"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}

content = get_content(url, headers)
if content is not None:
    parse_content(content)
else:
    print("Request failed")

以上代码在原有基础上使用了异常处理,并对requests库进行了超时时间设置,这样可以更好地保证代码稳定性和安全性。

总结

以上就是Python制作简单的网页爬虫的完整攻略。要制作一个有效的网页爬虫,需要了解网页结构,选取适合自己的爬虫库,并注意代码的优化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python制作简单的网页爬虫 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 爬虫_Crawler4j的使用

    Crawler4j的使用 (以下内容全部为转载,供自己查阅用)   下载地址: http://code.google.com/p/crawler4j/   Crawler4j的使用 网上对于crawler4j这个爬虫的使用的文章很少,Google到的几乎没有,只能自己根据crawler4j的源码进行修改。这个爬虫最大的特点就是简单易用,他连API都不提供。刚…

    爬虫 2023年4月13日
    00
  • python爬虫抓取哈尔滨天气信息(静态爬虫)

    python 爬虫 爬取哈尔滨天气信息 – http://www.weather.com.cn/weather/101050101.shtml   环境: windows7 python3.4(pip install requests;pip install BeautifulSoup4)   代码:(亲测可以正确执行) 1 # coding:utf-8 2…

    爬虫 2023年4月11日
    00
  • 三十三 Python分布式爬虫打造搜索引擎Scrapy精讲—数据收集(Stats Collection)

      Scrapy提供了方便的收集数据的机制。数据以key/value方式存储,值大多是计数值。 该机制叫做数据收集器(Stats Collector),可以通过 Crawler API 的属性 stats 来使用无论数据收集(stats collection)开启或者关闭,数据收集器永远都是可用的。 因此您可以import进自己的模块并使用其API(增加值或…

    爬虫 2023年4月13日
    00
  • Python实现实时显示进度条的六种方法

    Python实现实时显示进度条的六种方法 在Python中,实时显示进度条是非常常见的需求,有了进度条以后,可以非常清楚的了解程序的执行进度,以及剩余的时间。在本文中,将详细介绍Python实现实时显示进度条的六种方法。 方法一:使用tqdm模块 tqdm模块是一个非常强大的进度条模块,它可以实现多种进度条效果,并且非常易用。下面是一个使用tqdm模块实现进…

    python 2023年6月2日
    00
  • selenium+python配置chrome浏览器的选项的实现

    下面是详细的讲解: 1. 确认环境 首先需要确认本地已经安装好了 Python 环境和 Chrome 浏览器。如果没有安装,可以参考 Python 官方网站 和 Chrome 官方网站 进行下载和安装。确认安装后,可以在命令行输入 python 和 chrome 来检查是否已经正确安装。 2. 安装 Selenium Selenium 是用于自动化测试的工具…

    python 2023年6月6日
    00
  • Python实现matplotlib显示中文的方法详解

    在Python中使用Matplotlib库绘制图表时,如果需要显示中文,需要进行一些额外的配置。本文将详细讲解Python实现Matplotlib显示中文的方法。 方法一:使用中文字体 Matplotlib默认使用英文字体,如果需要显示中文,可以使用中文字体。以下是一个使用中文字体的示例: import matplotlib.pyplot as plt fr…

    python 2023年5月15日
    00
  • VSCode配置python环境及中文问题解决方法

    我来为您讲解如何在VSCode中配置Python环境及解决中文问题的方法。 VSCode配置Python环境 确认Python已安装并设置环境变量 在VSCode中使用Python需要先确认Python已经被正确安装,并设置了环境变量。可以在命令行中输入以下命令来确认是否已经安装: python –version 如果已经成功安装Python,会显示出Py…

    python 2023年5月20日
    00
  • 用python制作个论文下载器(图形化界面)

    制作论文下载器的完整攻略可以分为以下几个步骤: 步骤一:确定需求 在开始制作之前,我们需要确定自己的需求,考虑自己要做一个什么样的论文下载器。这个下载器需要具备哪些功能,需要考虑用户体验如何。 步骤二:安装依赖包 在制作下载器前,我们需要安装一些Python的依赖包,可以使用以下指令安装: pip install requests beautifulsoup…

    python 2023年6月13日
    00
合作推广
合作推广
分享本页
返回顶部