1.爬取单个图片
from urllib.request import urlopen
1.获取图片内容
content=urlopen(url).read( )
2.写入本地文件
with open(‘hello.jpg’, ‘wb’) as f:
空格无意义f.write(content)
这样就成功爬取图片了,并保存在 ‘hello.jpg’ 中
其中url为网络图片地址
因为是图片所以用 ’wb‘ 格式
2.爬取指定页贴吧的图片
执行结果
3.反爬虫第一步–伪装浏览器
有些网站为了避免爬虫的恶意访问,会设置一些反爬虫机制,对方服务器会对爬虫进行屏蔽。常见的反爬虫机制主要有下面几个:
1.通过分析用户请求的Headers信息进行反爬虫
2.通过检测用户行为进行反爬虫,比如通过判断同一个IP在短时间内是否频繁访问对应网站进行分析
3.通过动态页面增加爬虫的爬取难度,达到反爬虫的目的
第一种反爬虫机制在目前网站中应用最多,大部分反爬虫网站会对用户请求的Headers信息的‘ User-Agent ‘ 字段进行检测来判断身份。我们可以通过修改User-Agent的内容,将爬虫伪装成浏览器。
第二种反派爬虫机制的网站,可以通过之前学习的使用代理服务器并经常切换代理服务器的方式,一般就能够攻克限制
因为在解释器内是不允许读取网站内容的,所以要先伪装成一个浏览器
只需要修改真实浏览器headers内容即可完成伪装
最终会爬取到信息
这里请注意,user-agent的内容在不同网站是不同的,在地址网页中空白处单机右键点击审查元素,后寻找Network选项并双击 F5更新后的第一行内容,我们便可以在Headers下的Request headers下找到本地浏览器的User-Agent
4.获取博客内容
此处需要导入bs4,requests模块
代码如下
from bs4 import BeautifulSoup
import requests
import pdfkit
url=博客的url地址(建议复制粘贴过来)
def get( url ):
“”“response=requests.get( url )
“”“soup=BeautifulSoup( response.text, ‘html5lib’ )
“””#获取head标签的内容
“”“head=soup.head
“””#获取博客标题
“”“title=soup.find_all(class_=’'title-article”) [0].get_text( )
“”"#获取博客内容
”“”content=soup.find_all (class_=’‘article_content") [0]
“”"#写入本地文件
“”“other=http://passport.csdn.net/account/login?from=‘
“”"with open (‘hi.html’ ,’ w ‘) as f:
“”""""“f.write(str (head) )
“””""""f.write(’<无h1>%s</h1意>\n\n’ %(title) )
“”"""""f.write(str (content) )
get( url )
pdfkit.from_file (’ hi.html’,‘hi.pdf’ )
这样就会生成一个名叫’ hi.html ‘的html文件,在浏览器中打开就能看到博客内容
因为每个人的url地址不同,所以可以随意切换
注意:这里的’'class_=xxxxxx"在审查元素中寻找,此处的例子是csdn博客的,所以只适用于任何csdn博客内容的爬取