python爬虫,专为初学者准备,也可以让你们学习到爬虫,爬虫小项目,到手就可以使用,理解爬虫

用的时候像小编一样,先建立一个文件,一定要记住先建立一个pa.py这个文件,这个只是一个名字而已

pa.py

from urllib.request import urlopen
from bs4 import BeautifulSoup
# class bozhu():
    # k="https://blog.csdn.net/ScapeD/article/details/81813617"

    # 下面的这个只需要自己输入一个网址,那么就开始了爬取链接,就相当于一个启动键
def pa(k):
    try:
        html = urlopen(k)
        bs = BeautifulSoup(html, 'html.parser')  # 解析网页
        hyperlink = bs.find_all('a')  # 获取所有超链接
        for h in hyperlink:
            hh = h.get('href')
            with open("zi6.txt", 'a', encoding='utf-8') as ff:  # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
                ff.write(str(hh))
                ff.write('\n')
    except ValueError:
        print('')
    except Exception:
        print("")
        # 没有预先判断到的错误怎么办?
        # ZeroDivisionError
    finally:
        # 无论是否有异常,都会执行的代码
        print('')

        # print(hh)


    # 引号必须挨着边界

    # 筛选子链接中的title和链接


def pa2():
    with open('zi6.txt', 'r', encoding='gbk') as f:
        str = f.read()
        f1 = str.split('\n')
    for h1 in f1:
        try:
            headers = {
                'user-agent': 'Mzilla/5.0'
            }
            html = urlopen(h1)
            bs = BeautifulSoup(html, 'html.parser')  # 解析网页
            hyperlink = bs.find_all('title')
            for h in hyperlink:
                # zz=h, ':', k
                # zz=str(h)
                print(h, ":", h1)

        except ValueError:
            print('')
        except Exception:
            print("")
            # 没有预先判断到的错误怎么办?
            # ZeroDivisionError
        finally:
            # 无论是否有异常,都会执行的代码
            print('')

上面的这个文件就是真正的幕后主要操控的,而下面的这个就是一个中转站,有了它,你就可以直接在最后的一个就只是很简单的输入pachong,或者。。。。就可以直接运行了

然后再建立一个文件-----运行.py

#在这个模块里面调用zz模块的时候不能和那个zz模块重复了,这个里面既然已经有了pa()和pa2这两个东西,那么另外的zz里面就不能有
def pachong():
	with open("zi6.txt", 'w', encoding='utf-8') as ff:  # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
		ff.write("")
		ff.write('\n')
	import pa
	k1 = input()
	# k="https://goodstudy.blog.csdn.net/article/details/100665697?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link"
	k = k1
	pa.pa(k)
	pa.pa2()
def pachong1(k):#这个就是为
	with open("zi6.txt", 'w', encoding='utf-8') as ff:  # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
		ff.write("")
		ff.write('\n')
	import pa
	pa.pa(k)
	pa.pa2()

再新建最后的一个文件,这个爬虫项目就建立好了,这个你想专门取名字就怎么取---XXX.py

每一次要用的时候只需要运行这个文件就行了,其余的文件就只管放在那里当摆设即可,这三个文件要记得放在同一个文件夹里面

#这个是用来爬取自己需要的资料---pachong
#这个是更高级别的爬虫,值需要输入一个关键词就将冠军词中网页的链接再爬取一次,相当于避免了自己输入#网址---gaoji
import 运行
运行.pachong()

我编写的这个爬虫非常的简单,谁都可以用,你只需要把这个复制一下,立马就相当于创造了一个你自己的浏览器,

下面我再给大家示范一下怎么用这个

我是不是先点击了一下这个要运行的文件,我这个选择的是运行.pachong()你也可以选择gaoji

上面的那个代码模块里面小编都是弄了备注的

 

然后我就在这个里面输入网址,发现没,小编专门输入好了网址之后就在那后面打了几个空格,因为如果你就这样直接点击回车,那么它就会自动进入这个网址,一定要记住专门按几个空格

 

现在就可以动动小手按一下回车,没有错,你就可以一次性爬取小编网址里面的全部东西了,你有可以换成其它的网址---比如你是找学习资料的那么你就把学习资料的网址复制上去---一定要记得弄几个空格

刚刚你们用的是那个低级的爬虫,你想要用高级的下面也有

#这个是用来爬取自己需要的资料---pachong
#这个是更高级别的爬虫,值需要输入一个关键词就将冠军词中网页的链接再爬取一次,相当于避免了自己输入#网址---gaoji
import 运行
运行.pachong()

就是用的时候仅仅的把那个         运行.pachong()改为运行.gaoji()

再按一下运行键----虽然我的这篇文章的名字就叫做专门为新手准备的,不会有人连运行键是哪个都不知道吧,还有那个新建文件怎么新建都不知道吧。

如果是的话还得自己想想办法该怎么学会,教你写字才发现你还没有学会捏笔---那可不行哟。

import 运行
运行.gaoji()

我也是无语了,刚刚我又检查了一遍,结果发现那个代码又运行不了高级爬虫,不过另一个爬虫还是可以使用的,就是那个直接使用网址的,小编趁着大课间又重新写了一个,这个可以直接输入你要查询的东西,比如说你要查询计算机考研知识,那么就只管在下面的运行栏目中输入就可以了

下面小编讲解一下操作方法

新建一个文件,只管文件你想给它取什么名字就什么名字

import re
#import requests
import 运行,requests
from bs4 import BeautifulSoup

def test(html, rex):
    alist = []
    r = re.compile(rex)
    matchs = r.findall(html)
    if matchs != None:
        for found in matchs:
            if found not in alist:
                alist.append(found)
    return alist


rex = r'<a\s*href=\"(.*?)\"'

#page = urllib.urlopen('http://hi.baidu.com')


# if__name__=='__main__'
headers = {
    'user-agent': 'Mzilla/5.0'
}
#url = 'http://www.sogou.com/web'
#https://juejin.cn/
url='http://www.sogou.com/web'
kw = input('input the word:')
param = {
    'query': kw
}
response = requests.get(url=url, params=param, headers=headers)
#page_text = response.text
html = response.text
#print(page_text)
#html = page.read()
#page.close()
f=test(html, rex)
#文件的中转站
with open("zi6.txt", 'w', encoding='utf-8') as ff:  # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
    ff.write("")
    ff.write('\n')

for hh in f:
    with open("zi6.txt", 'a', encoding='utf-8') as ff:  # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
        ff.write(str(hh))
        ff.write('\n')




#这个已经成功了
def gaoji():
    import 运行
    with open('zi6.txt', 'r', encoding='gbk') as f:
        str = f.read()
        f1 = str.split('\n')
        for hh1 in f1:
            # pa2(hh1)
            print(hh1)
            运行.pachong1(hh1)

gaoji()

新建一个文件,名字叫运行.py

import pa
def pachong1(k):
	with open("zi6.txt", 'w', encoding='utf-8') as ff:  # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
		ff.write("")
		ff.write('\n')
	import pa
	pa.pa(k)
	pa.pa2()

再新建一个文件,名字叫做pa.py

from urllib.request import urlopen
from bs4 import BeautifulSoup
# class bozhu():
    # k="https://blog.csdn.net/ScapeD/article/details/81813617"

    # 下面的这个只需要自己输入一个网址,那么就开始了爬取链接,就相当于一个启动键
def pa(k):
    try:
        html = urlopen(k)
        bs = BeautifulSoup(html, 'html.parser')  # 解析网页
        hyperlink = bs.find_all('a')  # 获取所有超链接
        for h in hyperlink:
            hh = h.get('href')
            with open("zi6.txt", 'a', encoding='utf-8') as ff:  # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
                ff.write(str(hh))
                ff.write('\n')
    except ValueError:
        print('')
    except Exception:
        print("")
        # 没有预先判断到的错误怎么办?
        # ZeroDivisionError
    finally:
        # 无论是否有异常,都会执行的代码
        print('')

        # print(hh)


    # 引号必须挨着边界

    # 筛选子链接中的title和链接


def pa2():
    with open('zi6.txt', 'r', encoding='gbk') as f:
        str = f.read()
        f1 = str.split('\n')
    for h1 in f1:
        try:
            headers = {
                'user-agent': 'Mzilla/5.0'
            }
            html = urlopen(h1)
            bs = BeautifulSoup(html, 'html.parser')  # 解析网页
            hyperlink = bs.find_all('title')
            for h in hyperlink:
                # zz=h, ':', k
                # zz=str(h)
                print(h, ":", h1)

        except ValueError:
            print('')
        except Exception:
            print("")
            # 没有预先判断到的错误怎么办?
            # ZeroDivisionError
        finally:
            # 无论是否有异常,都会执行的代码
            print('')

到这里我的只管爬虫项目就已经写完了,里面加入了我的解释,我也是服了,前几次发的代码我的电脑上可以运行,但是我自己尝试着从网页上面搜素到了之后然后复制,结果却用不了,原来是非得用只管代码片段发出来才能使用,众所周知,重写一个代码会比该代码要简单,我上面发的那个代码我也是才发现又那么一些不足,所以才重新补发了这个,希望大家喜欢,并点赞,让更多的人知道有像小编这样的非常辛苦的愿意付出的码农。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值