Python 爬虫实战----3(实力展现)

实战:获取豆瓣电影top250的电影名字

1.获取url:打开网站按发f12,点击网络,刷新找到第一个截取url和User-Agent。

2.请求爬取数据

mport requests
import fake_useragent
from lxml import etree
import re
#UA
head = {
    "User-Agent": fake_useragent.UserAgent().random

}#这里使用了fake_useragent,会自动生成一个user-agent

url = "https://movie.douban.com/top250"
response = requests.get(url, headers=head)

2.定位想要的数据(其他数据也可以,同样找地址)

在元素中定位(列表一般都是有序的,所以只用定位一个例子)

response = requests.get(url, headers=head)
res_text = response.text
tree = etree.HTML(res_text)
#定位需要的数据
list_li=tree.xpath("//ol[@class='grid_view']/li")
for li in list_li:
    movie_name="".join(li.xpath(".//span[@class='title'][1]/text()"))

我们进入下一个页面,发现下一个页面多了start=25的参数,可判断下下个页面是start=50,以此类推,可以通过遍历访问每一个页面。

https://movie.douban.com/top250?start=25&filter=
for i in range(0, 250, 25):
    url = f"https://movie.douban.com/top250?start={i}&filter="

修改url

3.输出并储存:

# 打开一个文件写入数据
fp = open("./doubanFilm.txt", "w", encoding="utf8")
fp.write(movie_name+"\n")
        print(movie_name)
fp.close()

总结:将每一步整合:

import requests
import fake_useragent
from lxml import etree

#UA
head = {
    "User-Agent": fake_useragent.UserAgent().random

}
# 打开一个文件写入数据
fp = open("./doubanFilm.txt", "w", encoding="utf8")

for i in range(0, 250, 25):
    url = f"https://movie.douban.com/top250?start={i}&filter="

    response = requests.get(url, headers=head)
    res_text = response.text
    tree = etree.HTML(res_text)
#定位需要的数据
    list_li=tree.xpath("//ol[@class='grid_view']/li")
    for li in list_li:
        movie_name="".join(li.xpath(".//span[@class='title'][1]/text()"))


        fp.write(movie_name+"\n")
        print(movie_name)
fp.close()

运行:

运行成功,想要其他的数据也是可行的,只需找到需要的地址,以一个为例即可,每个的规律相同

爬虫重在仔细,耐心。

相关推荐

  1. Python爬虫实战案例

    2024-07-22 10:42:02       56 阅读
  2. Python爬虫实战-1

    2024-07-22 10:42:02       25 阅读
  3. python实现数据爬虫

    2024-07-22 10:42:02       37 阅读
  4. python实现网络爬虫

    2024-07-22 10:42:02       27 阅读
  5. Python3多线程爬虫实例讲解

    2024-07-22 10:42:02       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 10:42:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 10:42:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 10:42:02       45 阅读
  4. Python语言-面向对象

    2024-07-22 10:42:02       55 阅读

热门阅读

  1. DM数据库导出excel表结构

    2024-07-22 10:42:02       14 阅读
  2. 探索Python元类的奥秘:定义与实用应用

    2024-07-22 10:42:02       15 阅读
  3. 经常进行工作总结,有何重要作用呢?

    2024-07-22 10:42:02       15 阅读
  4. C++:istream、ostream和fstream类

    2024-07-22 10:42:02       18 阅读
  5. 4 DAY

    2024-07-22 10:42:02       14 阅读
  6. 数仓中主题域还是数据域?

    2024-07-22 10:42:02       16 阅读
  7. (day21)leecode hot100字母异位词分组

    2024-07-22 10:42:02       17 阅读
  8. WireGuard 编译安装

    2024-07-22 10:42:02       16 阅读