一、前言
接着上篇记录的爬虫应用,这次来试下百度搜索的爬虫应用。百度的很多搜索结果可以为我们的行业挣得信息差,并且统计数据后可以发现规律,根据规律寻找盈利点。所以我们先来试下小demo来尝试爬取百度的搜索结果。
二、需求分析
-
提供关键词后搜索结果
-
从搜索结果中提取
-
标题
-
链接
-
描述
-
来源
-
存为csv文件或者数据库
三、代码实现
- 设置爬取的网址(关键词为“python入门到放弃”,百度链接需要将中文转码)
def start_requests(self):
urls = [
# 关键词为python入门到放弃
"http://www.baidu.com/s?ie=UTF-8&wd=python%E5%85%A5%E9%97%A8%E5%88%B0%E6%94%BE%E5%BC%83"
]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
- 解析目标网页信息
def parse(self, response):
"""
用css表达式拿到目标网页元素 将其解析后提交到pipelines进行持久化 """
title_list = response.css("div.result h3 a").extract()
desc_list = response.css("div.result span[class*='right']").extract()
source_list = response.css("div[class*='source'] span.c-color-gray::text").extract()
for index, a in enumerate(title_list):
title = ''.join(Selector(text=title_list[index]).css(
"::text").extract())
href = Selector(text=title_list[index]).css(
"::attr(href)").extract_first()
desc = ''.join(Selector(text=desc_list[index]).css(
"::text").extract())
source = source_list[index]
item = BaiduSearchSpiderItem()
item["title"] = title
item["href"] = href
item["desc"] = desc
item["source"] = source
yield item
- settings文件设置
# 机器人协议要设置为否
ROBOTSTXT_OBEY = False
# 指定pipelines中间件,不然不会进入到持久化层
ITEM_PIPELINES = {
'baidu_search_spider.pipelines.BaiduSearchSpiderPipeline': 300,
}
# 设置默认请求头
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
- pipeline持久化处理
def process_item(self, item, spider):
"""
接收到提交过来的对象后,写入csv文件 """
filename = f'baidu_search_result.csv'
with open(filename, 'a+', encoding='utf-8') as f:
line = item["title"].replace(",", ",") + "," + item["href"] + "," + item["desc"].replace(",", ",") + "," + item[
"source"] + "\n"
f.write(line)
# self.log(f'Saved file {filename}')
return item
四、拓展
对于百度这种网站来说,这种请求如果访问频繁容易进入安全检测环节,这里也只是初次测试。要想将这种需求落实下来,我们要改进为用selenium去模拟人工操作浏览器进行爬取。接下来会跟着这个思路去实现。
以上就是“python爬虫进阶篇:用Scrapy框架进行百度搜索并爬取搜索结果进行持久化”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。