教程:python爬虫基础之简易网页搜集器
优采云 发布时间: 2022-11-18 05:19教程:python爬虫基础之简易网页搜集器
简单的网络爬虫我们已经学习了简单爬取浏览器页面的爬虫。但实际上,我们的需求当然不是爬搜狗或者B站首页那么简单,再糟糕的时候,我们都希望爬取特定的有信息的页面。
简单的网络爬虫
前面我们学习了简单爬取浏览器页面的爬虫。但实际上,我们的需求当然不是爬搜狗或者B站首页那么简单,再糟糕的时候,我们都希望爬取特定的有信息的页面。
不知道大家在学习爬取之后有没有和我一样尝试过爬取一些搜索页面,比如百度。像这样的页面
注意我红色笔划的部分,这是我打开的网页。现在希望爬取这个页面的数据。根据我们前面学习的代码,应该是这样写的:
<p>import requests
if __name__ == "__main__":
# 指定URL
url = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&tn=93923645_hao_pg&wd=%E5%A5%A5%E7%89%B9%E6%9B%BC&rsv_spt=1&oq=%25E7%2588%25AC%25E5%258F%2596%25E7%2599%25BE%25E5%25BA%25A6%25E9%25A6%2596%25E9%25A1%25B5&rsv_pq=b233dcfd0002d2d8&rsv_t=ccdbEuqbJfqtjnkFvevj%2BfxQ0Sj2UP88ixXHTNUNsmTa9yWEWTUEgxTta9r%2Fj3mXxDs%2BT1SU&rqlang=cn&rsv_dl=tb&rsv_enter=1&rsv_sug3=8&rsv_sug1=5&rsv_sug7=100&rsv_sug2=0&rsv_btype=t&inputT=1424&rsv_sug4=1424"
# 发送请求
response = requests.get(url)
# 获取数据
page_text = response.text
# 存储
with open("./奥特曼.html", "w", encoding = "utf-8") as fp:
fp.write(page_text)
print("爬取成功!!!")</p>
然而,当我们打开我们保存的文件时,却发现结果和我们想的不一样。
我们发现我们保存的文件是空白页,这是为什么呢?
其实我们把网址改成搜狗可能更直观(不知道为什么我这边的搜狗老是打不开,所以我以百度为例,可以自己写搜狗相关的代码自己搜索),同样的代码 换成搜狗的网址结果是这样的
我们发现里面有一句话是“网络中存在异常访问”,那么这句话是什么意思呢?
这句话的意思是,搜狗或者百度注意到,发送请求的是爬虫程序,而不是人为操作。
那么这背后的原理是什么?
简单来说,就是程序访问和浏览器访问的区别。请求的服务器依靠用户代理来确定访问者的身份。如果是浏览器,则接受请求,否则拒绝。这是一种很常见的反爬机制。
这是否意味着我们无能为力?
不~正所谓魔高一丈,道高一丈。既然要识别user-agent,那就让爬虫模拟user-agent吧。
在python中模拟输入数据或者user-agent,我们一般使用字典
像这样写:
<p>header = {
"user-agent": "" # user-agent 的值 是一个长字符串
}</p>
那么user-agent的值是如何获取的呢?
1.打开任意网页,右击选择“检查”
2.选择“网络”(谷歌浏览器)(如果是中文,选择“网络”项)
3.如果发现点击是空白,像这样,那就刷新页面
刷新之后是这样的:
然后随机选择红笔圈出的一项,我们会看到这样的东西,然后在里面找到“user-agent”,复制它的值。
使用“user-agent”,我们正在重写我们抓取网页的代码,仅此而已
<p>import requests
if __name__ == "__main__":
# 指定URL
url = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&tn=93923645_hao_pg&wd=%E5%A5%A5%E7%89%B9%E6%9B%BC&rsv_spt=1&oq=%25E7%2588%25AC%25E5%258F%2596%25E7%2599%25BE%25E5%25BA%25A6%25E9%25A6%2596%25E9%25A1%25B5&rsv_pq=b233dcfd0002d2d8&rsv_t=ccdbEuqbJfqtjnkFvevj%2BfxQ0Sj2UP88ixXHTNUNsmTa9yWEWTUEgxTta9r%2Fj3mXxDs%2BT1SU&rqlang=cn&rsv_dl=tb&rsv_enter=1&rsv_sug3=8&rsv_sug1=5&rsv_sug7=100&rsv_sug2=0&rsv_btype=t&inputT=1424&rsv_sug4=1424"
# 模拟 “user-agent”,即 UA伪装
header = {
"user-agent" : "" # 复制的 user-agent 的值
}
# 发送请求
response = requests.get(url, headers = header)
# 获取数据
page_text = response.text
# 存储
with open("./奥特曼(UA伪装).html", "w", encoding = "utf-8") as fp:
fp.write(page_text)
print("爬取成功!!!")</p>
再次运行,然后打开文件
这次成功了,说明我们的爬虫完美的忽悠了服务器
文章基于python爬虫的简单网页采集器到此结束
在下方搜索添加老师微信
教程:百度SEO网站优化的实战技巧
百度SEO网站名称优化最大的优势就是普适性。即使只是针对百度进行优化,您也会发现其他搜索引擎的排名更好,这实际上增加了网站 的流量。如今,百度竞价推广的价格越来越高,企业网站优化的绝对优势也显现出来。
百度搜索引擎优化
竞争性竞标,甚至自费,低效的媒体方式等,在适当的时候以一定的方式维护和优化网站,采用正规的广告方式,在可能时间和成本不会改变的时候年。
SEO优化是按点击付费的自然结果,被对手恶意点击也免不了损失。
SEO优化运营效率,但公司只存在于正在优化的搜索引擎中,需要每日积分。白帽不能机会主义的黑色搜索引擎优化。黑帽 SEO 是作弊的总称,作弊带来大量引擎,但它是恶意搜索,你发现你的 网站 被踢出,但流量损失更大。
那么,网站优化有哪些不可观察的技巧呢?
1.TDK优化。
进行 网站 优化都描述了三个标题 (D) 和 关键词 (K)。
T 是标题 网站 的标题。标题字数不宜过长,一般在4~32字以内,且字数不宜过多。关键词可以参考常见品牌的标题格式:关键词1_关键词2_3-网站可以在标题中加入一些个性化的符号,比如[]或者[ ],可使用patented、certified、designated等词语强调。
D是描述,网站描述的补充标题。几乎是用户是否点击 网站 的条件。
K 是 关键词, 关键词。关键词多个关键词需要理解,单独使用,一般3~5个关键词最好。
2.外链。
有很多指向外部链接的链接,但向我们传播适当质量的文本和图像链接。将外部链接传播到 网站。
外链多的朋友网站,大概3个外链网站,外链越多越多。
3:内容始终是。
搜索引擎的作用是向客户展示。优秀的本土人才可以展示原创的优质内容。