【无标题】

用python写一个爬虫

个人觉得其实没啥难度,就是相当于把网页源代码整下来进行查找,因为原来学过一段时间的前端,搞清楚原理以后还是很简单的

获取网页信息

具体的都有详细注释,有什么不懂的可以评论留言

import requests

# 要爬取数据的网址
def getContent(url):
    target = url
    # 设置请求头  模拟浏览器来操作
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'}
    # Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36
    # 使用get请求获取数据   get post请求方式
    req = requests.get(url=target, headers=headers)
    # 设置网页编码  Ctrl+/  常见编码 utf-8  gbk  gb2312
    req.encoding = 'gbk'
    # 获取请求到的内容 存放在html变量名中  text文本  文字
    html = req.text
    # 输出html变量的值
    print(html)
    return html

一般的网页,都可以使用chorm浏览器进行查找源代码

对于一般的网页,可以考虑不用加延时设置,但是像一些知名网站,都需要加上延时,以防止爬取速度过快,导致ip被ban
这是之前因为想看小说,被动不动弹出来的广告整的很烦,就自己写了一个爬虫

import HttpUtils
from bs4 import BeautifulSoup
# 写入文件
f = open("这里可以随便写", "w", encoding="utf-8")#主要用于打开文件,我用来保存小说的,第一个是名字,后面是编码,如果没有创建,会自动创建文件
f.write("标题\n")#这个是写入,写个标题,美观一些

www="网址"#想要爬取网站的网址

html=HttpUtils.getContent(www)
bf=BeautifulSoup(html,"html.parser")#使用的bs4来处理
# 小说网址
dex=bf.find("div",id="list").find_all("dd")
# print(dex)
#可以在这些地方多加一些判断或者输出,因为经常会有些网页你读取他的盒子,会没有,导致后面的循环没办法进行
#下面就是一些比较简单的循环,主要就是相当于去爬取网页上你想要的数据,因为他写的网页代码一定是有逻辑的,你就可以写一堆循环来进行处理
#这个是当时小说目录页面,自动爬出来的数据,再根据每一个目录对应的数据进行爬取,然后一整本小说就得到啦
for i in dex:
    weblist=i.find_all("a")
    # print(weblist)
    for j in weblist:
        url=j.get("href")
        # print(url)
        www2 = "https:/网址" + str(url)
        html = HttpUtils.getContent(www2)
        bf = BeautifulSoup(html, "html.parser")
        print("1"+www2)
        name=bf.find("div",class_="bookname").find("h1")
        partname=name.text
        print(name.text)
        con=bf.find("div",id="content")
        content=con.text
        print(content)
        f.write(partname)
        f.write((content))







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值