Python爬虫、数据清洗与可视化-4 - scrapy-练习-1-——爬baidu首页热点

新手学习日记1-练习
爬baidu首页热点
一、创建工程
用scrapy创建个新项目爬baidu首页热点。命令行下输入命令,命令会在当前目录下创建baiduscrapy项目。

scrapy startproject baiduscrapy
cd baiduscrapy
scrapy genspider baidu "www.baidu.com"

二、修改parse
命令已经帮我们自动创建了爬虫代码,打开spiders文件夹下baidu.py文件,修改如下。

import scrapy
from baiduscrapy.items import BaiduscrapyItemclass BaiduSpider(scrapy.Spider):name = 'baidu' #爬虫的名字,运行爬虫的时候就看这个参数。allowed_domains = ['baidu.com'] #抓取的域名限制start_urls = ['https://www.baidu.com/']  #要抓取的url列表,类型listdef parse(self, response):hots = response.xpath('//*[@id="hotsearch-content-wrapper"]/li')#open('hot','wb').write(response.body).close()items = [] #存放信息的集合for hot in hots:titles = hot.xpath('.//a/span/text()').extract()#xpath返回的是一个列表,列表中的每个元素都是selector类型的对象#extract()可以将selector对象中的data参数对应的字符串提取出来item = BaiduscrapyItem()  #类实例化item['title'] = "".join(titles)  #要确认在item中已经定义title#'sep'.join(seq):以sep作为分隔符,将seq所有的元素合并成一个新的字符串print(item['title'])items.append(item)return items

三、修改settings
settings.py文件robots协议等需要修改下:

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.68'
DOWNLOAD_DELAY = 3  # 下载延时
ROBOTSTXT_OBEY = False  可以忽略或者不遵守robots协议
CONCURRENT_REQUEST = 16  # 默认16个并行
LOG_LEVEL='ERROR #只有程序出现错误的情况下,才显示日志文件
FEED_EXPORT_ENCODING = "gbk" #解决保存CSV文件乱码
`

四、修改items
items。.py增加title

import scrapy
class BaiduscrapyItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()title = scrapy.Field()pass

五、调试运行
‘’’
使用终端运行输入较麻烦,而且不能提取数据,可以写一个‘run.py’文件作为程序的入口,splite是必须写的,
目的是把字符串转为列表形式,
第一个参数是scrapy,第二个crawl,第三个baidu
from scrapy import cmdline
cmdline.execute(‘scrapy crawl baidu’.split())

导出为json或scv格式,执行爬虫文件时添加-o选项即可
scrapy crawl 项目名 -o ***.csv
scrapy crawl 项目名 -o ***.json
例如:cmdline.execute(‘scrapy crawl baidu -o baidu.csv’.split())
‘’’

from scrapy import cmdline
cmdline.execute("scrapy crawl baidu -o baidu.csv".split())

将文件导出为EXCEL可以打开的文件


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部