1.图片下载
# 百度图片:http://image.baidu.com/
# 搜狗图片:https://pic.sogou.com/
# 图片爬取:
1).寻找图片下载的url: elements与network抓包
2).浏览器中访问url, 进行验证
3).编写代码获取url
4).请求url地址, 获取二进制流
5).将二进制流写入文件
# 百度图片:
import time
import requests
from lxml import etree
from selenium import webdriver
# 实例化浏览器对象
browser = webdriver.Chrome('./chromedriver.exe')
# 访问网页并操控网页元素获取搜索结果
browser.get('http://image.baidu.com/')
input_tag = browser.find_element_by_id('kw')
input_tag.send_keys('乔碧萝')
search_button = browser.find_element_by_class_name('s_search')
search_button.click()
# 通过js实现鼠标向下滚动, 获取更多页面源码
js = 'window.scrollTo(0, document.body.scrollHeight)'
for times in range(3):
browser.execute_script(js)
time.sleep(3)
html = browser.page_source
# 解析数据获取图片连接:
tree = etree.HTML(html)
url_list = tree.xpath('//div[@id="imgid"]/div/ul/li/@data-objurl')
for img_url in url_list:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}
content = requests.get(url=img_url, headers=he