爬虫-Bs4、Xpath

Bs4

1.拿到主页面的源代码,提取子页面链接,href

2.通过herf获取子页面内容就可以获取图片的下载地址,img-》src

3.下载图片

代码:

import requests
from bs4 import BeautifulSoup
import time

url = "https://www.umei.cc/bizhitupian/weimeibizhi/"
resp = requests.get(url)
resp.encoding = 'utf-8'
resp.close()
#print(resp.text)

#把源代码交给Bs4
main_page = BeautifulSoup(resp.text, "html.parser")
alist = main_page.find("div",class_="TypeList").find_all("img")
print(alist)
for a in alist:
   src = a.get('src')
   print(src)
   #下载图片
   img_resp = requests.get(src)
   #img_resp.content  #这里拿到是字节
   img_name = src.split("/")[-1] #拿到url最后/以后的内容
   with open("img/"+img_name,mode="wb")as f:
      f.write(img_resp.content) #图片内容写入文件

   print("over!",img_name)
   time.sleep(1)

print("all over!!")

 运行结果:

图片:

 

 

xpath 

 xpath是在XMl文档中搜索内容的一门语言

html是xml的一个子集

1.拿页面源代码

2.提取和解析数据

代码:

import requests
from lxml import etree

url = "https://beijing.zbj.com/search/f/?kw=saas"
resp = requests.get(url)
#print(resp.text)
resp.close()

#解析
html = etree.HTML(resp.text)
#拿到每一个服务商的div
divs = html.xpath("/html/body/div[6]/div/div/div[2]/div[5]/div[1]/div")
for div in divs:
    #print(divs.get(text))
    price = div.xpath("./div/div/a/div[2]/div[1]/span[1]/text()")
    title = div.xpath("./div/div/a[1]/div[2]/div[2]/p/text()")
    print(price)

运行结果:

 调试过程:

如图选择则确定板块:

第三部可以选择为第2步当中块的最外层 确定div后如下

 选择该div之后右键copy Xpath之后得到

/html/body/div[6]/div/div/div[2]/div[5]/div[1]/div[1]

由于想要的不只是这个块,而是类似于该块的其他所有板块,所以将xpath修改为:

/html/body/div[6]/div/div/div[2]/div[5]/div[1]/div

选择想要的价格需要依次查看标签如下:

./div/div/a/div[2]/div[1]/span[1]/text()

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值