我是靠谱客的博主 重要心情,最近开发中收集的这篇文章主要介绍Python 爬虫,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

爬虫

  • 开发工具pycharm, python3.8

  • 用到的模块

    • fake_useragent 模块

    • requests 模块

    • 使用xpath解析html

  • 爬虫基本原理分析

  • 书写代码爬取网络资源

获取网页信息

  • 构建请求头
    在这里插入图片描述

  • 使用XPath解析HTML

    XPath是一门在XML文档中查找信息的语言

爬取豆瓣电影top250

```python
# @function:爬取电影top250
# @Description:一只萤火虫
# 清华大学镜像网站 https://pypi.tuna.tsinghua.edu.cn/simple/
# 安装 requests库文件
# 安装 fake-user库文件
import time
import requests
from fake_useragent import UserAgent
from lxml import html


def get_html(url):
    user_agent = UserAgent()                                 # 使用浏览器生成库
    headers = {"user-agent": user_agent.random}              # 随机生成浏览器
    response = requests.get(url, headers=headers)            # 获得响应对象
    if response.status_code != 200:
        raise Exception("请检查传入的url", url)
    return response.text


if __name__ == "__main__":
    url = "https://movie.douban.com/top250?start={}"                 # 需要解析的网页
    etree = html.etree                  # 构建解析对象
    for i in range(10):
        html_str = get_html(url.format(i * 25))
        html = etree.HTML(html_str)
        # //*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[1]/a/span[1] ;网页标题,右键->检查->copy->复制xpath路径
        # //*[@id="content"]/div/div[1]/ol/li[2]/div/div[2]/div[1]/a/span[1] ;对比发现一个li对应一个电影名字
        # //*[@id="content"]/div/div[1]/ol/li[1]/div/div[2]/div[2]/div/span[2] ; 评分
        # 遍历每一个li标签,一个li据对应一个电影的信息
        lis = html.xpath('//*[@id="content"]/div/div[1]/ol/li')
        j = 25 * i
        for li in lis:
            spans_info = li.xpath('./div/div[2]/div[1]/a/span[1]')
            movie_title = " "
            for span in spans_info:
                movie_title += span.text
                j += 1
                # print("第{:2}个电影:{:18}".format(i, movie_title), end="t")
            spans_scores = li.xpath('./div/div[2]/div[2]/div/span[2]')
            movie_score = ""
            for span in spans_scores:
                movie_score += span.text
                # print("豆瓣:{:.4}分".format(movie_score))
                print("第{:2}个电影:{:30}/豆瓣{}分".format(j, movie_title, movie_score))
        time.sleep(5)
```

最后

以上就是重要心情为你收集整理的Python 爬虫的全部内容,希望文章能够帮你解决Python 爬虫所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部