python网络爬虫模块
发布日期:2022-09-27 12:05:28 浏览次数:2 分类:技术文章

本文共 3172 字,大约阅读时间需要 10 分钟。

re模块

想在python中使用正则表达式,可以使用re模块来辅助筛选。

1.findall

查找数据中所有符合条件的数值,最后的结果以列表形式输出。(贪婪匹配)

import reres = re.findall('l', 'hello') # ['l', 'l']

2.finditer

功能与findall一致,不过最后以迭代器形式输出。

import reres = re.finditer('l', 'hello')# 

3.search

查找数据中符合条件的数值,查找到一个就直接停止。(非贪婪匹配)

search输出形式为迭代器,span表示目标在数据中的坐标位置,可以用group方法只输出数据。

import reres = re.search('a', 'abcabc')# 
res.group() # a

4.match

判断头部是否匹配条件,只匹配头部。

match输出形式也是迭代器,但头部匹配不成立的情况下会输出None

import reres = re.match('a', 'balance') # None

5.compile

compile可以提前制作一个正则表达式,需要时直接提用,节约代码空间

import reobj = re.compile('a')res = re.findall(obj, 'abcabc') # 相当于把条件用变量的形式输入

re模块的特殊功能

1.分组

给判断条件中的字符添加括号,就是给条件分组。所有字符都会参与匹配,但是输出时优先显示分组内的字符。

import reres = re.findall('abc', 'abcabcabcabc')# ('abc', 'abc', 'abc', 'abc')res1 = re.findall('a(b)c', 'abcabcabcabc')# ('b', 'b', 'b', 'b')

2.别名

别名就是给分组取名,输出时如果写了别名优先输出对应的分组。

取名方式为在括号内输入?p<组名>

import reres = re.search('a(?P
b)(?P
c)','abcabcabcabc')print(res.group('id'))print(res.group('name'))

网络爬虫简介

网络爬虫就是从计算机到互联网上获取信息,除了自主上网获取信息外,还可以使用代码获取网页上的信息。

第三方模块下载

在python中自带第三方模块的下载与导入。

使用命令提示符

pip解释器版本名 install 模块名pip3.10 install requests

执行之后等待下载进度完成即导入成功。

注意:第三方模块导入之后无法跨版本使用,只能在安装的版本调用。

默认的下载地址为国外网站,也可以手动更改成国内网站

pip3.10 install 模块名 -i 源地址

部分国内下载地址

清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/

阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/
华中科技大学:http://pypi.hustunique.com/
豆瓣源:http://pypi.douban.com/simple/
腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/

使用pycharm

打开pycharm左上角的file / setting,选中左侧的project:文件名,在这里会显示当前解释器安装的所有模块目录。

 然后点击任意模块进入下载界面,在上面搜索栏输入模块名,选中之后点击左下角的install即可自动下载和导入模块。

 

使用requests模块获取信息

1.获取网址及信息

网页本身由代码构成,所有信息都可以在代码上赋值到本地。

本次例子由

import requestsres = requests.get('网址') # 相当于在浏览器输入网址print(res.content)  # 获取页面bytes类型的数据print(res.text)  # 获取解码之后的数据,相当于在网页按f12查看源代码with open(r'hn.html','wb') as f:  #为了避免每次执行都要从网络上下载数据,可以先保存到本地    f.write(res.content)

2.读取数据

import re,requestwith open(r'hn.html', 'r', encoding='utf8') as f:  # 读取页面数据    data = f.read()company_name_list = re.findall('

(.*?)

', data)#获取所有的分公司名称company_addr_list = re.findall("

(.*?)

", data)#获取所有的分公司地址print(company_addr_list)company_email_list = re.findall("

(.*?)

", data)#获取所有的分公司邮箱print(company_email_list)company_phone_list = re.findall("

(.*?)

", data)#获取所有的分公司电话print(company_phone_list)

3.整合打包信息

res = zip(company_name_list, company_addr_list, company_email_list, company_phone_list)#将获得的信息按照上述名称分组

4.格式化输出

for i in res:     print("""    公司名称:%s    公司地址:%s    公司邮箱:%s    公司电话:%s    """ % i)# ('红牛杭州分公司', '杭州市上城区庆春路29号远洋大厦11楼A座', '310009', '0571-87045279/7792')

openpyxl模块

openpyxl模块是python中用于操控链接excel表格的模块之一,openpyxl相比其他使用excel的模块操作更加简单。

1.创建excel文件

from openpyxl import Workbook  # 导入模块wb = Workbook() #创建文件wb1 = wb.create_sheet('成绩表') #创建表wb.save(r'111.xlsx') #将文件命名为括号内字符并保存

2.写入数据

方式一:坐标

将位置填写在括号内

wb1['A1'] = '信息'

方式二:cell

wb1.cell(row=3, column=2, value='信息')

方式三:append

使用append时会以一次一行的方式添加数据,如果没有数据输入可以用None代替。

wb1.append(['username','password','age','gender','hobby'])wb1.append(['jason1',123,18,'male','read'])wb1.append(['jason2',123,18,'male','read'])

转载地址:https://blog.csdn.net/Lord_Haruka/article/details/125896413 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Python网络爬虫爬取搜狗关键词首页
下一篇:Python网络爬虫框架 Scrapy简介

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月16日 05时13分42秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章