使用正则进行图片数据的批量解析爬取

  • 如何爬取图片数据?
    • 方式1:基于requests
    • 方式2:基于urllib
1
2
3
4
5
6
import requests
import urllib
headers={
#'Content-Type': 'application/json;charset=UTF-8',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36',
}
1
2
3
4
5
6
#方式1:
img_url='https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.zhimg.com%2Fv2-3e0c210d69e8deef20fafb0bf34e040f_1440w.jpg%3Fsource%3D172ae18b&refer=http%3A%2F%2Fpic1.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1631195545&t=5c43a74a906f3c30067f4dc4e6f92915'
response=requests.get(url=img_url,headers=headers)
img_data=response.content#content返回的是二进制形式的响应数据
with open('苏炳添.jpg','wb') as fp:
fp.write(img_data)
1
2
3
#方式2:
img_url='https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.zhimg.com%2Fv2-3e0c210d69e8deef20fafb0bf34e040f_1440w.jpg%3Fsource%3D172ae18b&refer=http%3A%2F%2Fpic1.zhimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1631195545&t=5c43a74a906f3c30067f4dc4e6f92915'
urllib.request.urlretrieve(img_url,'./苏炳添(2).jpg')
('./2.jpg', <http.client.HTTPMessage at 0x24761b2bb48>)
  • 上述两种方式爬取图片操作有什么不同?

    • 使用urllib的方式爬取图片无法进行UA伪装,而requests方式可以
  • 爬取国家地理官网中每日一图栏目的图片

    • 操作:先将每一张图片的地址解析出来,再对图片的地址发送请求
  • 分析浏览器开发者工具中Elements和Network这两个选项卡对应的页面源码数据有何不同?

    • Elements包含的页面源码数据为当前页面所有数据加载完毕后对应的完整的页面源码数据(包含动态加载数据)
    • Network中的页面源码数据仅仅为某一个单独的请求对应的响应数据(不包含动态加载数据)
  • 结论:在进行数据解析的时候,一定是要对页面布局进行分析,如果当前网站没有动态加载数据就可以直接使用Elements对页面布局进行分析,否则只可以使用Network对页面数据进行分析
1
2
3
import re
import os
import json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
dirName='ImgLibs_ngchina'
if not os.path.exists(dirName):
os.makedirs(dirName)
url='http://ngchina.com.cn/api/ex/cms/news/list'
i=0
for page in range(1,6):
payloadData={
'cmsNews':{
'categoryId': '18',
'isWebsite': "Y",
},
'pageDomain':{
'isAsc': "desc",
'orderByColumn': "publish_time",
'pageNum': str(page),
'pageSize': '12',
}
}
response=requests.post(url=url,data=json.dumps(payloadData),headers=headers)
page_text=response.json()
for pic in page_text['rows']:
i=i+1
src=pic['pic']
imgPath=dirName+'/'+str(i)+'.jpg'
response=requests.get(url=src,headers=headers)
img_data=response.content#content返回的是二进制形式的响应数据
with open(imgPath,'wb') as fp:
fp.write(img_data)
print(imgPath,'下载成功!')
ImgLibs/1.jpg 下载成功!
ImgLibs/2.jpg 下载成功!
ImgLibs/3.jpg 下载成功!
ImgLibs/4.jpg 下载成功!
ImgLibs/5.jpg 下载成功!
ImgLibs/6.jpg 下载成功!
ImgLibs/7.jpg 下载成功!
ImgLibs/8.jpg 下载成功!
ImgLibs/9.jpg 下载成功!
ImgLibs/10.jpg 下载成功!
ImgLibs/11.jpg 下载成功!
ImgLibs/12.jpg 下载成功!
ImgLibs/13.jpg 下载成功!
ImgLibs/14.jpg 下载成功!
ImgLibs/15.jpg 下载成功!
ImgLibs/16.jpg 下载成功!
ImgLibs/17.jpg 下载成功!
ImgLibs/18.jpg 下载成功!
ImgLibs/19.jpg 下载成功!
ImgLibs/20.jpg 下载成功!
ImgLibs/21.jpg 下载成功!
ImgLibs/22.jpg 下载成功!
ImgLibs/23.jpg 下载成功!
ImgLibs/24.jpg 下载成功!
ImgLibs/25.jpg 下载成功!
ImgLibs/26.jpg 下载成功!
ImgLibs/27.jpg 下载成功!
ImgLibs/28.jpg 下载成功!
ImgLibs/29.jpg 下载成功!
ImgLibs/30.jpg 下载成功!
ImgLibs/31.jpg 下载成功!
ImgLibs/32.jpg 下载成功!
ImgLibs/33.jpg 下载成功!
ImgLibs/34.jpg 下载成功!
ImgLibs/35.jpg 下载成功!
ImgLibs/36.jpg 下载成功!
ImgLibs/37.jpg 下载成功!
ImgLibs/38.jpg 下载成功!
ImgLibs/39.jpg 下载成功!
ImgLibs/40.jpg 下载成功!
ImgLibs/41.jpg 下载成功!
ImgLibs/42.jpg 下载成功!
ImgLibs/43.jpg 下载成功!
ImgLibs/44.jpg 下载成功!
ImgLibs/45.jpg 下载成功!
ImgLibs/46.jpg 下载成功!
ImgLibs/47.jpg 下载成功!
ImgLibs/48.jpg 下载成功!
ImgLibs/49.jpg 下载成功!
ImgLibs/50.jpg 下载成功!
ImgLibs/51.jpg 下载成功!
ImgLibs/52.jpg 下载成功!
ImgLibs/53.jpg 下载成功!
ImgLibs/54.jpg 下载成功!
ImgLibs/55.jpg 下载成功!
ImgLibs/56.jpg 下载成功!
ImgLibs/57.jpg 下载成功!
ImgLibs/58.jpg 下载成功!
ImgLibs/59.jpg 下载成功!
ImgLibs/60.jpg 下载成功!
  • 数据解析的作用?
    • 用来实现聚焦爬虫
  • 网页中显示的数据都是存在哪里的?
    • 都存储在html的标签中或者是标签的属性中
  • 数据解析的通用原理:
    • 指定标签的定位
    • 取出标签中存储的数据或者标签属性中的数据

bs4

  • bs4解析原理:
    • 实例化一个BeautifulSoup对象,且将带解析的页面源码数据加载到该对象中
    • 调用BeautifulSoup对象中相关方法或属性进行标签定位或文本数据的提取
  • 环境安装:
    • pip install lxml
    • pip install bs4
  • BeautifulSoup对象的实例化:
    • BeautifulSoup(fp,’lxml’):用来将本地存储的html文档中的数据进行解析
    • BeautifulSoup(page_text,’lxml’):用来将互联网上请求到的页面源码数据进行解析
  • 标签定位:
    • soup.tagName:只可以定位到第一次出现的tagName标签
    • soup.find(‘tagName’,attrName=’value’):属性定位
    • soup.findAll():同find,不过返回的是列表
    • soup.select(‘选择器’):选择器定位
      • 类选择器
      • id选择器
      • 层级选择器
        • 大于号:表示一个层级
        • 空格:表示多个层级
  • 取数据:
    • .text:返回的是该标签下所有的文本内容
    • .string:返回的是该标签直系的文本内容
  • 取属性:

    • tag[‘attrName’]
  • 爬取三国演义全篇内容:http://sanguo.5000yan.com/

1
from bs4 import BeautifulSoup
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
main_url='http://sanguo.5000yan.com/'
response=requests.get(url=main_url,headers=headers)
response.encoding='utf-8'
page_text=response.text
fp=open('./sanguo.txt','w',encoding='utf-8')
#数据解析:章节标题,详情页url,章节内容
soup=BeautifulSoup(page_text,'lxml')
#定位到所有符合要求的a标签
a_list=soup.select('.sidamingzhu-list-mulu > ul > li > a')
for a in a_list:
title=a.string
detail_url=a['href']
#对详情页发起请求解析出章节内容
response=requests.get(url=detail_url,headers=headers)
response.encoding='utf-8'
page_text=response.text
soup=BeautifulSoup(page_text,'lxml')
div_tag=soup.find('div',class_='grap')
content=div_tag.text
fp.write(title+':'+content+'\n')
print(title,'保存成功!')
fp.close
第一回 宴桃园豪杰三结义 斩黄巾英雄首立功 保存成功!
第二回 张翼德怒鞭督邮 何国舅谋诛宦竖 保存成功!
第三回 议温明董卓叱丁原 馈金珠李肃说吕布 保存成功!
第四回 废汉帝陈留践位 谋董贼孟德献刀 保存成功!
第五回 发矫诏诸镇应曹公 破关兵三英战吕布 保存成功!
第六回 焚金阙董卓行凶 匿玉玺孙坚背约 保存成功!
第七回 袁绍磐河战公孙 孙坚跨江击刘表 保存成功!
第八回 王司徒巧使连环计 董太师大闹凤仪亭 保存成功!
第九回 除暴凶吕布助司徒 犯长安李傕听贾诩 保存成功!
第十回 勤王室马腾举义 报父仇曹操兴师 保存成功!
第十一回 刘皇叔北海救孔融 吕温侯濮阳破曹操 保存成功!
第十二回 陶恭祖三让徐州 曹孟德大战吕布 保存成功!
第十三回 李傕郭汜大交兵 杨奉董承双救驾 保存成功!
第十四回 曹孟德移驾幸许都 吕奉先乘夜袭徐郡 保存成功!
第十五回 太史慈酣斗小霸王 孙伯符大战严白虎 保存成功!
第十六回 吕奉先射戟辕门 曹孟德败师淯水 保存成功!
第十七回 袁公路大起七军 曹孟德会合三将 保存成功!
第十八回 贾文和料敌决胜 夏侯惇拨矢啖睛 保存成功!
第十九回 下邳城曹操鏖兵 白门楼吕布殒命 保存成功!
第二十回 曹阿瞒许田打围 董国舅内阁受诏 保存成功!
第二十一回 曹操煮酒论英雄 关公赚城斩车胄 保存成功!
第二十二回 袁曹各起马步三军 关张共擒王刘二将 保存成功!
第二十三回 祢正平裸衣骂贼 吉太医下毒遭刑 保存成功!
第二十四回 国贼行凶杀贵妃 皇叔败走投袁绍 保存成功!
第二十五回 屯土山关公约三事 救白马曹操解重围 保存成功!
第二十六回 袁本初败兵折将 关云长挂印封金 保存成功!
第二十七回 美髯公千里走单骑 汉寿侯五关斩六将 保存成功!
第二十八回 斩蔡阳兄弟释疑 会古城主臣聚义 保存成功!
第二十九回 小霸王怒斩于吉 碧眼儿坐领江东 保存成功!
第三十回 战官渡本初败绩 劫乌巢孟德烧粮 保存成功!
第三十一回 曹操仓亭破本初 玄德荆州依刘表 保存成功!
第三十二回 夺冀州袁尚争锋 决漳河许攸献计 保存成功!
第三十三回 曹丕乘乱纳甄氏 郭嘉遗计定辽东 保存成功!
第三十四回 蔡夫人隔屏听密语 刘皇叔跃马过檀溪 保存成功!
第三十五回 玄德南漳逢隐沧 单福新野遇英主 保存成功!
第三十六回 玄德用计袭樊城 元直走马荐诸葛 保存成功!
第三十七回 司马徽再荐名士 刘玄德三顾草庐 保存成功!
第三十八回 定三分隆中决策 战长江孙氏报仇 保存成功!
第三十九回 荆州城公子三求计 博望坡军师初用兵 保存成功!
第四十回 蔡夫人议献荆州 诸葛亮火烧新野 保存成功!
第四十一回 刘玄德携民渡江 赵子龙单骑救主 保存成功!
第四十二回 张翼德大闹长坂桥 刘豫州败走汉津口 保存成功!
第四十三回 诸葛亮舌战群儒 鲁子敬力排众议 保存成功!
第四十四回 孔明用智激周瑜 孙权决计破曹操 保存成功!
第四十五回 三江口曹操折兵 群英会蒋干中计 保存成功!
第四十六回 用奇谋孔明借箭 献密计黄盖受刑 保存成功!
第四十七回 阚泽密献诈降书 庞统巧授连环计 保存成功!
第四十八回 宴长江曹操赋诗 锁战船北军用武 保存成功!
第四十九回 七星坛诸葛祭风 三江口周瑜纵火 保存成功!
第五十回 诸葛亮智算华容 关云长义释曹操 保存成功!
第五十一回 曹仁大战东吴兵 孔明一气周公瑾 保存成功!
第五十二回 诸葛亮智辞鲁肃 赵子龙计取桂阳 保存成功!
第五十三回 关云长义释黄汉升 孙仲谋大战张文远 保存成功!
第五十四回 吴国太佛寺看新郎 刘皇叔洞房续佳偶 保存成功!
第五十五回 玄德智激孙夫人 孔明二气周公瑾 保存成功!
第五十六回 曹操大宴铜雀台 孔明三气周公瑾 保存成功!
第五十七回 柴桑口卧龙吊丧 耒阳县凤雏理事 保存成功!
第五十八回 马孟起兴兵雪恨 曹阿瞒割须弃袍 保存成功!
第五十九回 许诸裸衣斗马超 曹操抹书间韩遂 保存成功!
第六十回 张永年反难杨修 庞士元议取西蜀 保存成功!
第六十一回 赵云截江夺阿斗 孙权遗书退老瞒 保存成功!
第六十二回 取涪关杨高授首 攻雒城黄魏争功 保存成功!
第六十三回 诸葛亮痛哭庞统 张翼德义释严颜 保存成功!
第六十四回 孔明定计捉张任 杨阜借兵破马超 保存成功!
第六十五回 马超大战葭萌关 刘备自领益州牧 保存成功!
第六十六回 关云长单刀赴会 伏皇后为国捐生 保存成功!
第六十七回 曹操平定汉中地 张辽威震逍遥津 保存成功!
第六十八回 甘宁百骑劫魏营 左慈掷杯戏曹操 保存成功!
第六十九回 卜周易管辂知机 讨汉贼五臣死节 保存成功!
第七十回 猛张飞智取瓦口隘 老黄忠计夺天荡山 保存成功!
第七十一回 占对山黄忠逸待劳 据汉水赵云寡胜众 保存成功!
第七十二回 诸葛亮智取汉中 曹阿瞒兵退斜谷 保存成功!
第七十三回 玄德进位汉中王 云长攻拔襄阳郡 保存成功!
第七十四回 庞令明抬榇决死战 关云长放水淹七军 保存成功!
第七十五回 关云长刮骨疗毒 吕子明白衣渡江 保存成功!
第七十六回 徐公明大战沔水 关云长败走麦城 保存成功!
第七十七回 玉泉山关公显圣 洛阳城曹操感神 保存成功!
第七十八回 治风疾神医身死 传遗命奸雄数终 保存成功!
第七十九回 兄逼弟曹植赋诗 侄陷叔刘封伏法 保存成功!
第八十回 曹丕废帝篡炎刘 汉王正位续大统 保存成功!
第八十一回 急兄仇张飞遇害 雪弟恨先主兴兵 保存成功!
第八十二回 孙权降魏受九锡 先主征吴赏六军 保存成功!
第八十三回 战猇亭先主得仇人 守江口书生拜大将 保存成功!
第八十四回 陆逊营烧七百里 孔明巧布八阵图 保存成功!
第八十五回 刘先主遗诏托孤儿 诸葛亮安居平五路 保存成功!
第八十六回 难张温秦宓逞天辩 破曹丕徐盛用火攻 保存成功!
第八十七回 征南寇丞相大兴师 抗天兵蛮王初受执 保存成功!
第八十八回 渡泸水再缚番王 识诈降三擒孟获 保存成功!
第八十九回 武乡侯四番用计 南蛮王五次遭擒 保存成功!
第九十回 驱巨兽六破蛮兵 烧藤甲七擒孟获 保存成功!
第九十一回 祭泸水汉相班师 伐中原武侯上表 保存成功!
第九十二回 赵子龙力斩五将 诸葛亮智取三城 保存成功!
第九十三回 姜伯约归降孔明 武乡侯骂死王朗 保存成功!
第九十四回 诸葛亮乘雪破羌兵 司马懿克日擒孟达 保存成功!
第九十五回 马谡拒谏失街亭 武侯弹琴退仲达 保存成功!
第九十六回 孔明挥泪斩马谡 周鲂断发赚曹休 保存成功!
第九十七回 讨魏国武侯再上表 破曹兵姜维诈献书 保存成功!
第九十八回 追汉军王双受诛 袭陈仓武侯取胜 保存成功!
第九十九回 诸葛亮大破魏兵 司马懿入寇西蜀 保存成功!
第一百回 汉兵劫寨破曹真 武侯斗阵辱仲达 保存成功!
第一百零一回 出陇上诸葛妆神 奔剑阁张郃中计 保存成功!
第一百零二回 司马懿占北原渭桥 诸葛亮造木牛流 保存成功!
第一百零三回 上方谷司马受困 五丈原诸葛禳星 保存成功!
第一百零四回 陨大星汉丞相归天 见木像魏都督丧 保存成功!
第一百零五回 武侯预伏锦囊计 魏主拆取承露盘 保存成功!
第一百零六回 公孙渊兵败死襄平 司马懿诈病赚曹 保存成功!
第一百零七回 魏主政归司马氏 姜维兵败牛头山 保存成功!
第一百零八回 丁奉雪中奋短兵 孙峻席间施密计 保存成功!
第一百零九回 困司马汉将奇谋 废曹芳魏家果报 保存成功!
第一百一十回 文鸯单骑退雄兵 姜维背水破大敌 保存成功!
第一百一十一回 邓士载智败姜伯约 诸葛诞义讨司 保存成功!
第一百一十二回 救寿春于诠死节 取长城伯约鏖兵 保存成功!
第一百一十三回 丁奉定计斩孙綝 姜维斗阵破邓艾 保存成功!
第一百一十四回 曹髦驱车死南阙 姜维弃粮胜魏兵 保存成功!
第一百一十五回 诏班师后主信谗 托屯田姜维避祸 保存成功!
第一百一十六回 钟会分兵汉中道 武侯显圣定军山 保存成功!
第一百一十七回 邓士载偷度阴平 诸葛瞻战死绵竹 保存成功!
第一百一十八回 哭祖庙一王死孝 入西川二士争功 保存成功!
第一百一十九回 假投降巧计成虚话 再受禅依样画 保存成功!
第一百二十回 荐杜预老将献新谋 降孙皓三分归一 保存成功!





<function TextIOWrapper.close()>

xpath解析

  • 环境安装:
    • pip install lxml
  • 解析原理:
    • 实例化一个etree对象,且将带解析的页面源码数据加载到该对象中
    • 调用etree对象的xpath方法结合着不同的xpath表达式实现标签的定位和数据的提取
  • 实例化etree对象
    • etree.parse(‘fileName’):将本地的html文档加载到对象中
    • etree.HTML(‘page_text’):将网站获取的页面数据加载到对象中
  • 标签定位:
    • 最左侧的/:如果xpath表达式最左侧是以/开头则表示该xpath表达式一定要从根标签开始定位指定标签
    • 非最左侧的/:表示一个层级
    • 非最左侧的//:表示多个层级
    • 最左侧的//:表示xpath表达式可以从任意位置进行标签定位
    • 属性定位:tagName[@attrName=”value”]
    • 索引定位:tag[index] 索引从1开始
    • 模糊匹配:
      • //div[contains(@class,’ng’)]
      • //div[starts-with(@class,’ta’)]
  • 取文本
    • /text():直系文本内容
    • //text():所有文本内容
  • 取属性
    • /@attrName
1
from lxml import etree
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
dirName='ImgLibs_fengjing_4k'
if not os.path.exists(dirName):
os.makedirs(dirName)
url='https://pic.netbian.com/4kfengjing/index_%d.html'
for page in range(1,6):
if page==1:
new_url='https://pic.netbian.com/4kfengjing/index_.html'
else:
new_url=format(url%page)
response=requests.get(url=new_url,headers=headers)
response.encoding='gbk'
page_text=response.text
#图片名称+图片数据
tree=etree.HTML(page_text)
img_src_list=tree.xpath('//div[@class="slist"]/ul/li/a/img/@src')
img_name_list=tree.xpath('//div[@class="slist"]/ul/li/a/img/@alt')
i=0
for src in img_src_list:
src='https://pic.netbian.com'+src
imgPath=dirName+'/'+img_name_list[i]+'.jpg'
i=i+1
response=requests.get(url=src,headers=headers)
img_data=response.content#content返回的是二进制形式的响应数据
with open(imgPath,'wb') as fp:
fp.write(img_data)
print(imgPath,'下载成功!')
ImgLibs_4kfengjing/梯田水稻风景4K壁纸.jpg 下载成功!
ImgLibs_4kfengjing/奥罗拉湖的夜晚 瑞士Bannalp湖 冰岛 极光 星空 4K壁纸.jpg 下载成功!
ImgLibs_4kfengjing/广西桂林山水高清风景4K壁纸.jpg 下载成功!
ImgLibs_4kfengjing/仙境峡谷小溪风景5k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/海岛 湖上的花之乐园4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/桂林山水风景图片,桂林山水全景图,桂林山水风景6K高清大图.jpg 下载成功!
ImgLibs_4kfengjing/海边棕榈树海滩4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/大海 海滩 树 石头 树 4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/苹果自带macos mojove Mojave Night 莫哈韦沙漠晚上风景5K壁纸.jpg 下载成功!
ImgLibs_4kfengjing/森林 公路 阳光 4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/森林 树木 阳光 绿色植物4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/山水风景 竹排 河水 4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/山 苹果4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/竹子竹叶4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/美丽的海洋风景 海边 绿色树林 蓝色海水 从上面往下看 windows10主题风景4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/蓝色天空 白云 海洋 4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/度假 浪漫海边沙滩 吊床 4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/静谧小路森林风景 小溪 win10主题风景4k壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/四川成都 春节 元宵节 灯笼 喜庆 5k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/海上日出 海边 美丽的云 微软windows10主题风景4k高清壁纸.jpg 下载成功!
ImgLibs_4kfengjing/海边风景 云 岩石 微软windows10风景主题4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/海洋公园 顶部拍摄 群岛公园4k风景壁纸win10.jpg 下载成功!
ImgLibs_4kfengjing/岩石 群岛 从空中看 微软win10风景4k壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/自然之美 火山 熔岩 win10主题风景4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/自然之美 云 黑暗 闪电 微软win10主题风景4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/绿色森林 木栈道 自然风景win10主题4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/win10电脑主题 森林 吊桥 树木 绿色植物 4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/win10主题自然森林大树木栈道小路4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/微软win10主题风景 自然森林 树木 木栈道4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/森林里的小溪瀑布小路win10风景主题4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/雪 冰 自然 极光4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/Devils Bridge 桥梁和绿色树木 河流 倒映6k自然风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/黄昏 湖畔 山 码头 6k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/海边 石洞 瀑布 星空 5k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/夜晚 夜间 别墅风景 湖水 树 草 房子 倒影 小屋 灯光 4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/山上的树 路 天空 唯美4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/山顶上的别墅风景4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/苹果树花5k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/国外别墅风景河水柳树5k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/希腊扎金索斯港口自然风景3440x1440带鱼屏壁纸.jpg 下载成功!
ImgLibs_4kfengjing/冬天雪山雪景小木屋4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/好看手绘山水画 日落 湖水 渔船 4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/雪域 挪威 云杉 森林 日落4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/新西兰埃格蒙特国家公园4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/德国罗曼棱堡桥 冬天雪景 4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/荷花4k壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/极光 星空 云 湖 高山 倒映 4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/自然风景 山脉 日落 树木 水 天空 云 阳光 草 4k高清风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/Surface Laptop Go Ice Blue 微软4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/catalina岛日落风景4k壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/小米笔记本pro 4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/晚上 星空 海边 海岸4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/巴伐利亚 阿尔卑斯山 日出 木屋房子 湖 4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/北极光星空夜景4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/北京大学牌匾6k壁纸图片.jpg 下载成功!
ImgLibs_4kfengjing/巴黎铁塔城市风景4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/羽扇豆 河流 湖水风景4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/悬崖上的田地风景4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/美丽山水 乡村风景4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/秋天的森林风景4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/雪 城市 建筑 晚上 灯光 4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/雪山 山谷 乡村 风景4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/星空 海 石头 树 4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/微软Win10丛林河流风景4k壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/秋天 雪山 河流 树林 房子 4k风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/自然风景森林 瀑布 小溪 树林 4k高清风景壁纸.jpg 下载成功!
ImgLibs_4kfengjing/香港晚上风景4k高清壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/晚上 山 河流  房子 灯光 4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/东湾花园旁的新加坡花园全景4k壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/迪拜码头日落城市夜晚风景4k壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/悉尼海港大桥夜景和悉尼天际线4k壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/星空 旅行 宿营 高山 4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/晚上 星空 湖水 4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/天空一线 天空 云 4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/日落 月亮 高山峰 云雾 4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/星空 流星 火山 晚上 4k风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/星空 公路 夜景4k电脑壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/微软window10《世界河流》4K风景壁纸3840x2160.jpg 下载成功!
ImgLibs_4kfengjing/劳特布龙嫩山谷4k壁纸.jpg 下载成功!
ImgLibs_4kfengjing/秋叶4k高清壁纸.jpg 下载成功!
  • 需求:要求解析出携带html标签的局部数据?

    • bs4,bs4在实现标签定位的时候返回的直接就是定位到标签对应的字符串数据
  • xpath表达式如何更加具有通用性?

    • 在xpath表达式中使用管道符分割,可以表示管道符左右两侧的子xpath表达式同时生效或着一个生效
1
2
3
4
5
6
7
8
9
#将https://www.aqistudy.cn/historydata/所有的城市名称解析出来
url='https://www.aqistudy.cn/historydata/'
response=requests.get(url=url,headers=headers)
response.encoding='utf-8'
page_text=response.text
tree=etree.HTML(page_text)
# hot_cities=tree.xpath('//div[@class="hot"]//li/a/text()')
# all_cities=tree.xpath('//div[@class="all"]//li/a/text()')
hot_and_all_cities=tree.xpath('//div[@class="hot"]//li/a/text() | //div[@class="all"]//li/a/text()')
['北京',
 '上海',
 '广州',
 '深圳',
 '杭州',
 '天津',
 '成都',
 '南京',
 '西安',
 '武汉',
 '阿坝州',
 '安康',
 '阿克苏地区',
 '阿里地区',
 '阿拉善盟',
 '阿勒泰地区',
 '安庆',
 '安顺',
 '鞍山',
 '克孜勒苏州',
 '安阳',
 '蚌埠',
 '白城',
 '保定',
 '北海',
 '宝鸡',
 '北京',
 '毕节',
 '博州',
 '白山',
 '百色',
 '保山',
 '白沙',
 '包头',
 '保亭',
 '本溪',
 '巴彦淖尔',
 '白银',
 '巴中',
 '滨州',
 '亳州',
 '长春',
 '昌都',
 '常德',
 '成都',
 '承德',
 '赤峰',
 '昌吉州',
 '五家渠',
 '昌江',
 '澄迈',
 '重庆',
 '长沙',
 '常熟',
 '楚雄州',
 '朝阳',
 '沧州',
 '长治',
 '常州',
 '潮州',
 '郴州',
 '池州',
 '崇左',
 '滁州',
 '定安',
 '丹东',
 '东方',
 '东莞',
 '德宏州',
 '大理州',
 '大连',
 '大庆',
 '大同',
 '定西',
 '大兴安岭地区',
 '德阳',
 '东营',
 '黔南州',
 '达州',
 '德州',
 '儋州',
 '鄂尔多斯',
 '恩施州',
 '鄂州',
 '防城港',
 '佛山',
 '抚顺',
 '阜新',
 '阜阳',
 '富阳',
 '抚州',
 '福州',
 '广安',
 '贵港',
 '桂林',
 '果洛州',
 '甘南州',
 '固原',
 '广元',
 '贵阳',
 '甘孜州',
 '赣州',
 '广州',
 '淮安',
 '海北州',
 '鹤壁',
 '淮北',
 '河池',
 '海东地区',
 '邯郸',
 '哈尔滨',
 '合肥',
 '鹤岗',
 '黄冈',
 '黑河',
 '红河州',
 '怀化',
 '呼和浩特',
 '海口',
 '呼伦贝尔',
 '葫芦岛',
 '哈密地区',
 '海门',
 '海南州',
 '淮南',
 '黄南州',
 '衡水',
 '黄山',
 '黄石',
 '和田地区',
 '海西州',
 '河源',
 '衡阳',
 '汉中',
 '杭州',
 '菏泽',
 '贺州',
 '湖州',
 '惠州',
 '吉安',
 '金昌',
 '晋城',
 '景德镇',
 '金华',
 '西双版纳州',
 '九江',
 '吉林',
 '即墨',
 '江门',
 '荆门',
 '佳木斯',
 '济南',
 '济宁',
 '胶南',
 '酒泉',
 '句容',
 '湘西州',
 '金坛',
 '鸡西',
 '嘉兴',
 '江阴',
 '揭阳',
 '济源',
 '嘉峪关',
 '胶州',
 '焦作',
 '锦州',
 '晋中',
 '荆州',
 '库尔勒',
 '开封',
 '黔东南州',
 '克拉玛依',
 '昆明',
 '喀什地区',
 '昆山',
 '临安',
 '六安',
 '来宾',
 '聊城',
 '临沧',
 '娄底',
 '乐东',
 '廊坊',
 '临汾',
 '临高',
 '漯河',
 '丽江',
 '吕梁',
 '陇南',
 '六盘水',
 '拉萨',
 '乐山',
 '丽水',
 '凉山州',
 '陵水',
 '莱芜',
 '莱西',
 '临夏州',
 '溧阳',
 '辽阳',
 '辽源',
 '临沂',
 '龙岩',
 '洛阳',
 '连云港',
 '莱州',
 '兰州',
 '林芝',
 '柳州',
 '泸州',
 '马鞍山',
 '牡丹江',
 '茂名',
 '眉山',
 '绵阳',
 '梅州',
 '宁波',
 '南昌',
 '南充',
 '宁德',
 '内江',
 '南京',
 '怒江州',
 '南宁',
 '南平',
 '那曲地区',
 '南通',
 '南阳',
 '平度',
 '平顶山',
 '普洱',
 '盘锦',
 '蓬莱',
 '平凉',
 '莆田',
 '萍乡',
 '濮阳',
 '攀枝花',
 '青岛',
 '琼海',
 '秦皇岛',
 '曲靖',
 '齐齐哈尔',
 '七台河',
 '黔西南州',
 '清远',
 '庆阳',
 '钦州',
 '衢州',
 '泉州',
 '琼中',
 '荣成',
 '日喀则',
 '乳山',
 '日照',
 '韶关',
 '寿光',
 '上海',
 '绥化',
 '石河子',
 '石家庄',
 '商洛',
 '三明',
 '三门峡',
 '山南',
 '遂宁',
 '四平',
 '商丘',
 '宿迁',
 '上饶',
 '汕头',
 '汕尾',
 '绍兴',
 '三亚',
 '邵阳',
 '沈阳',
 '十堰',
 '松原',
 '双鸭山',
 '深圳',
 '朔州',
 '宿州',
 '随州',
 '苏州',
 '石嘴山',
 '泰安',
 '塔城地区',
 '太仓',
 '铜川',
 '屯昌',
 '通化',
 '天津',
 '铁岭',
 '通辽',
 '铜陵',
 '吐鲁番地区',
 '铜仁地区',
 '唐山',
 '天水',
 '太原',
 '台州',
 '泰州',
 '文昌',
 '文登',
 '潍坊',
 '瓦房店',
 '威海',
 '乌海',
 '芜湖',
 '武汉',
 '吴江',
 '乌兰察布',
 '乌鲁木齐',
 '渭南',
 '万宁',
 '文山州',
 '武威',
 '无锡',
 '温州',
 '吴忠',
 '梧州',
 '五指山',
 '西安',
 '兴安盟',
 '许昌',
 '宣城',
 '襄阳',
 '孝感',
 '迪庆州',
 '辛集',
 '锡林郭勒盟',
 '厦门',
 '西宁',
 '咸宁',
 '湘潭',
 '邢台',
 '新乡',
 '咸阳',
 '新余',
 '信阳',
 '忻州',
 '徐州',
 '雅安',
 '延安',
 '延边州',
 '宜宾',
 '盐城',
 '宜昌',
 '宜春',
 '银川',
 '运城',
 '伊春',
 '云浮',
 '阳江',
 '营口',
 '榆林',
 '玉林',
 '伊犁哈萨克州',
 '阳泉',
 '玉树州',
 '烟台',
 '鹰潭',
 '义乌',
 '宜兴',
 '玉溪',
 '益阳',
 '岳阳',
 '扬州',
 '永州',
 '淄博',
 '自贡',
 '珠海',
 '湛江',
 '镇江',
 '诸暨',
 '张家港',
 '张家界',
 '张家口',
 '周口',
 '驻马店',
 '章丘',
 '肇庆',
 '中山',
 '舟山',
 '昭通',
 '中卫',
 '张掖',
 '招远',
 '资阳',
 '遵义',
 '枣庄',
 '漳州',
 '郑州',
 '株洲']
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
dirName='ImgLibs_fengjing'
if not os.path.exists(dirName):
os.makedirs(dirName)
url='https://sc.chinaz.com/tupian/fengjing_%d.html'
for page in range(1,2):
if page==1:
new_url='https://sc.chinaz.com/tupian/fengjing.html'
else:
new_url=format(url%page)
response=requests.get(url=new_url,headers=headers)
response.encoding='utf-8'
page_text=response.text
tree=etree.HTML(page_text)
detail_src_list=tree.xpath('//div[@class="box picblock col3"]//p/a/@href')
img_name_list=tree.xpath('//div[@class="box picblock col3"]//img/@alt')
i=0
for detail in detail_src_list:
detail='https:'+detail
response=requests.get(url=detail,headers=headers)
response.encoding='utf-8'
page_text=response.text
tree1=etree.HTML(page_text)
img_src=tree1.xpath('//div[@class="dian"][2]//a/@href')[1]
imgPath=dirName+'/'+img_name_list[i]+'.rar'
i=i+1
response=requests.get(url=img_src,headers=headers)
img_data=response.content
with open(imgPath,'wb')as fp:
fp.write(img_data)
print(imgPath,'下载成功!')
ImgLibs_fengjing/远山树林房屋草地风景图片.rar 下载成功!
ImgLibs_fengjing/蓝色天空云团风景图片.rar 下载成功!
ImgLibs_fengjing/树木砍伐木材堆图片.rar 下载成功!
ImgLibs_fengjing/汽车穿越公路树林图片.rar 下载成功!
ImgLibs_fengjing/光秃秃山脉鸟瞰图.rar 下载成功!
ImgLibs_fengjing/漂亮棕榈树图片.rar 下载成功!
ImgLibs_fengjing/云海树林风景图片.rar 下载成功!
ImgLibs_fengjing/海上骄阳图片.rar 下载成功!
ImgLibs_fengjing/蓝天白云杉树林远山图片.rar 下载成功!
ImgLibs_fengjing/风景画壁纸图片.rar 下载成功!
ImgLibs_fengjing/黄昏山脉田园鸟瞰图.rar 下载成功!
ImgLibs_fengjing/月色山峦风景图片.rar 下载成功!
ImgLibs_fengjing/园林景区风景图片.rar 下载成功!
ImgLibs_fengjing/云海树林山丘小路图片.rar 下载成功!
ImgLibs_fengjing/黄昏下高压电线杆图片.rar 下载成功!
ImgLibs_fengjing/秋冬巍峨高山风景图片.rar 下载成功!
ImgLibs_fengjing/航拍山脉风光图片.rar 下载成功!
ImgLibs_fengjing/森林松树木景观图片.rar 下载成功!
ImgLibs_fengjing/天空乌云闪电雷鸣图片.rar 下载成功!
ImgLibs_fengjing/高山绿色茂密树林图片.rar 下载成功!
ImgLibs_fengjing/傍晚黄昏海边图片.rar 下载成功!
ImgLibs_fengjing/唯美云海日出图片.rar 下载成功!
ImgLibs_fengjing/蓝天白云远山图片.rar 下载成功!
ImgLibs_fengjing/傍晚时分山脉风景图片.rar 下载成功!
ImgLibs_fengjing/积雪覆盖的小山图片.rar 下载成功!
ImgLibs_fengjing/翻腾海洋巨浪图片.rar 下载成功!
ImgLibs_fengjing/秋天稻草垛图片.rar 下载成功!
ImgLibs_fengjing/绿色树林溪流图片.rar 下载成功!
ImgLibs_fengjing/晨曦山野花丛小路图片.rar 下载成功!
ImgLibs_fengjing/天空积云风景图片.rar 下载成功!
ImgLibs_fengjing/天空日落自然景观图片.rar 下载成功!
ImgLibs_fengjing/山石公路风景图片.rar 下载成功!
ImgLibs_fengjing/原野上双彩虹景观图片.rar 下载成功!
ImgLibs_fengjing/黄昏大海风景图片.rar 下载成功!
ImgLibs_fengjing/环岛海域树林风景图片.rar 下载成功!
ImgLibs_fengjing/麦田稻草包图片.rar 下载成功!
ImgLibs_fengjing/低角度拍摄椰子树图片.rar 下载成功!
ImgLibs_fengjing/绿色海岛树林大海图片.rar 下载成功!
ImgLibs_fengjing/晨曦大海风景图片.rar 下载成功!
ImgLibs_fengjing/荒芜人烟沙漠风景图片.rar 下载成功!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
dirName='resumeLibs'
if not os.path.exists(dirName):
os.makedirs(dirName)
url='https://sc.chinaz.com/jianli/free_%d.html'
for page in range(1,2):
if page==1:
new_url='https://sc.chinaz.com/jianli/free.html'
else:
new_url=format(url%page)
response=requests.get(url=new_url,headers=headers)
response.encoding='utf-8'
page_text=response.text
tree=etree.HTML(page_text)
detail_src_list=tree.xpath('//div[@class="box col3 ws_block"]/p/a/@href')
img_name_list=tree.xpath('//div[@class="box col3 ws_block"]//img/@alt')
i=0
for detail in detail_src_list:
detail='https:'+detail
response=requests.get(url=detail,headers=headers)
response.encoding='utf-8'
page_text=response.text
tree1=etree.HTML(page_text)
img_src=tree1.xpath('//div[@class="clearfix mt20 downlist"]//a/@href')[1]
imgPath=dirName+'/'+img_name_list[i]+'.rar'
i=i+1
response=requests.get(url=img_src,headers=headers)
img_data=response.content
with open(imgPath,'wb')as fp:
fp.write(img_data)
print(imgPath,'下载成功!')
resumeLibs/人力资源应届生简历封面.rar 下载成功!
resumeLibs/ 新闻编辑英文简历模板下载.rar 下载成功!
resumeLibs/检测员求职简历模板下载word.rar 下载成功!
resumeLibs/ 平面设计求职简历模板下载.rar 下载成功!
resumeLibs/大学生人力资源简历表格模板.rar 下载成功!
resumeLibs/ 品牌策划简历模板下载.rar 下载成功!
resumeLibs/销售总监个人求职简历模板.rar 下载成功!
resumeLibs/ 艺术设计应聘简历模板.rar 下载成功!
resumeLibs/商务设计类个人简历模板.rar 下载成功!
resumeLibs/ 室内设计应届生简历模板下载.rar 下载成功!
resumeLibs/理工科毕业生通用简历模板.rar 下载成功!
resumeLibs/ 物流管理毕业生简历模板封面.rar 下载成功!
resumeLibs/行政管理个人简历表格.rar 下载成功!
resumeLibs/ 互联网软件开发简历word模板.rar 下载成功!
resumeLibs/iOS开发工程师个人简历范文.rar 下载成功!
resumeLibs/ 办公室文员个人简历封面.rar 下载成功!
resumeLibs/施工员word个人简历模板下载.rar 下载成功!
resumeLibs/ 营销学毕业生简历模板下载.rar 下载成功!
resumeLibs/人事专员应聘个人简历模板表格.rar 下载成功!
resumeLibs/ 系统工程师英文简历模板下载.rar 下载成功!
  • 站长素材爬取风景图片小图
    • 反爬机制:图片懒加载
      • 只有当图片被显示在浏览器可视化范围内才会将img的伪属性变成真正的属性,requests请求是没有可视化范围的,如果是requests发起的请求,就要解析img伪属性的属性值(图片地址)。