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)
```
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值