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()



