爬虫request库

1.流程

# ① 导入request库
# ② 明确需要爬虫的网页url,定义浏览器请求头,添加相关参数如user_gester\cookie
# ③ 定义响应response,使用request请求
# ④ 导入解析器htlm=response.text导出网页代码
# ⑤ 使用etree解析代码得到网页的树形结构tree
# ⑥ 定义列表 li_list,使用树形结构tree里面的xpath路径
# ⑦ for循环li_list里面的所有列表li
# ⑧ 定义需要获取的变量,用li后面的代码,和前面的衔接,比如name=./后面的代码巴拉巴拉text()
# ⑨ 存储,定义一个列表xx=[ ],for循环前面
# ⑩ for里面让xx.append(命名), ————for外面,用with open 保存

2.注意事项

# get请求返回的是一个网页
# post请求返回的是一个表单
# status code 表示请求得到的response值为200表示请求成功,返回404表示网页不存在
# htlm是网页源代码的意思
# lxml:request库里面解析源代码的库
# jion:解析库,可以同意删除“ ”里面的东西
# w每次运行情况
# a每次续写

3.代码

import requests
from lxml import etree
import csv

# 网页链接,明确需要爬虫的网页url
url="修改为具体网址"

# 定义请求头,并添加相关参数,如user_gester\cookie
headers={
    "User-Agent":"修改为自己的浏览器请求头"
 }

# 定义响应response,使用request请求,注意不同的请求使用的方式不一样,要去网页检查,如本项目使用get请求
response = requests.get(url=url, headers=headers)

# 导入解析器htlm=response.text导出网页代码
html=response.text
# print(html)   # 可以检查运行情况

# 使用etree解析代码得到网页的树形结构tree
tree=etree.HTML(html)
# print(tree)   # 检查运行情况

# 定义列表 li_list,使用树形结构tree里面的xpath路径,其中li也可以是别的什么,只是用li表示列表更清楚
dd_list=tree.xpath("//*[@id='list']/dl/dd")

# 明确需要获取的东西是什么
name_list=[]
lianjie_list=[]

# for循环li_list里面的所有列表li
for dd in dd_list:
    # name=dd.xpath("./a/@title")
    # 定义需要获取的变量,用li后面的代码,和前面的衔接,比如name=./后面的代码巴拉巴拉text(),
        # text是获取文本结构数据的意思
    name=dd.xpath("./a/text()")
    # name=dd.xpath("./a[@title='第二十三章']/text()")    # 定位23章,绝对路径
    # name=dd.xpath("./a[@href='/xs/11446/6815238.html']/text()")    # 定位23章
    lianjie=dd.xpath("./a/@href")
        # @href是获取链接数据,主要是看xpath路径中,@href=什么

    a="".join(name)
    b="".join(lianjie)
    B="https://"+"www.zzxx"+".org"+b
    name_list.append(a)
    lianjie_list.append(B)

# with open("bqg.txt","w",encoding="utf-8") as f:   # 写入的时候就转码为中文了
#     for a,B in zip(name_list,lianjie_list):
#         f.write(f"{a}-{B}\n")


with open('7.csv', 'w', newline='', encoding='utf-8') as file:   # newline 作用是删除空行
    writer = csv.writer(file)
    # 写入表头
    writer.writerow(['章节', '链接'])
    # 遍历电影名称和排名的列表,并将它们作为一行写入文件
    for name, rank in zip(name_list, lianjie_list):
        writer.writerow([name, rank])

4.代码备份情况

文件在"D:\爬虫学习\爬虫request"

环境名是“fenghuang”

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值