Python网络爬虫部分

python

CSDN博客的爬取(链接的爬取)

糗事百科段子爬取(内容的爬取)

用户代理池构建实战

前面已经学会如何构建用户代理,那么用户代理池如何构建呢?所谓的用户代理池,即将不同的用户代理组建成为一个池子,随后随机调用。

IP代理与IP代理池的构建的两种方案

IP代理概述
IP代理是指让爬虫使用代理IP去爬取对方的网站

使用urllib.request.ProxyHandler()来设置对应的代理服务器信息,设置格式为:urllib.request.ProxyHandler({“http”:代理服务器地址})
上面设置完后,要进行初始化,使用urllib.request.build_opener(代理信息,urllib.request.HTTPHandler)创建一个自定义的opener对象,第一个参数代理信息,第二个参数为urllib.request.HTTPHandler类
为了方便,使用urllib.request.install_opener()创建全局默认的opener对象,那么在使用urlopen()时,会使用安装的opener对象
若打开使用wb形式,则不需要转码,因为是wb是使用二进制形式写入;若打开用w形式,则需要转码decode

IP代理池构建
第一种方式:使用随机代理池调用IP代理池的构建(适合于代理IP稳定的情况)

第二种方式:通过接口调用法实现IP代理池的构建
???待研究

淘宝商品图片爬虫实战

#淘宝商品图片爬虫

import urllib.request

import re

import random

keyname="连衣裙"

key=urllib.request.quote(keyname)

uapools=[

"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko",

"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0",

"Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12"

]

def ua(uapools):

thisua=random.choice(uapools)

print(thisua)

headers=("User-Agent",thisua)

opener=urllib.request.build_opener()

opener.addheaders=[headers]

#安装为全局

urllib.request.install_opener(opener)

for i in range(1,101):

url="https://s.taobao.com/search?q="+key+"&s="+str((i-1)*44)

ua(uapools)

data=urllib.request.urlopen(url).read().decode("utf-8","ignore")

pat=\'pic_url":"//(.*?)"\'

imglist=re.compile(pat).findall(data)

print(imglist)

for j in range(0,len(imglist)):

thisimg=imglist[j]

thisimgurl="http://"+thisimg

lockfile="D:/Python练习/淘宝图片/"+str(i)+str(j)+".jpg"

urllib.request.urlretrieve(thisimgurl,filename=localfile)

以上是 Python网络爬虫部分 的全部内容, 来源链接: utcz.com/z/388478.html

回到顶部