爬取鬥圖網圖片,使用xpath格式來匹配內容,對請求假裝成瀏覽器, Referer 防跨域請求

6.21自我總結

一.爬取鬥圖網

1.摘要

使用xpath匹配規則查找對應信息文件
    將請求假裝成瀏覽器
    Referer 防跨域請求

2.爬取代碼

#導入模塊
import requests

#爬取網址
url = 'http://www.doutula.com/'

#假裝成成瀏覽器請求
#找到request200,200表明請求成功的裏面的內容,按F12裏面找
'''
Referer: http://www.doutula.com/  Referer爲防跨域請求,我看了下圖片都是這個全部也能夠不加上去,這個簡單來講就是你只能經過這個網址來找到圖片,若是他和url不一樣咱們也把他加入再hearders裏面,和下面保存一塊兒
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36
'''

#編程字典,爲了把咱們請求假裝成瀏覽器
hearders = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36',}

response = requests.get(url,headers=hearders) #hearders是請求頭,body是請求主體

#成功拿到響應

#查找的內容
'''
data-original="http://ww4.sinaimg.cn/bmiddle/9150e4e5gy1g48gluqdp6j203c03ct92.jpg" 
'''

#咱們用xpath進行查找
#咱們去頁面找,他對應的xpath
img_xpath = './/img/@data-original'

#解析
from lxml.html import etree
#把爬取的內容變成html格式
html = etree.HTML(response.text) #咱們請求下來的內容要以text格式
#把xpath的匹配規則丟進去
img_url = html.xpath(img_xpath)
#print(img_url)

#保存文件
#建立個文件夾
import os

#建立當前文件夾位置一個img文件夾
img_file_path = os.path.join(os.path.dirname(__file__),'img')  #得到文件夾名

if not os.path.exists(img_file_path): #沒有文件夾名建立文件夾
    os.mkdir(img_file_path)

#把圖片保存進該文件夾
count = 1 #用於計數
for img in img_url:

    img_path = os.path.join(img_file_path,f'第{count}張.jpg')    #建立圖片名稱

    with open(img_path,'wb') as fw:

        #獲取圖片的二進制形式
        img_response = requests.get(img)
        img_response = img_response.content

        #寫入文件
        fw.write(img_response)
        count +=1
相關文章
相關標籤/搜索