python之爬虫简概

1.爬取单个图片
from urllib.request import urlopen

url=‘http://imgsrc.baidu.com/forum/w%3D580/sign=e23a670db9b7d0a27bc90495fbee760d/38292df5e0fe9925f33f62ef3fa85edf8db17159.jpg

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博客内容的爬取

猜你喜欢

转载自blog.csdn.net/weixin_42719822/article/details/83017311
今日推荐