|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 温木zou 于 2020-12-3 15:06 编辑
爬虫文件
- import scrapy
- from fishc.items import FishcItem
- class FcSpider(scrapy.Spider):
- name = 'fc'
- allowed_domains = ['fishc.com']
- start_urls = ['https://fishc.com.cn/forum.php?mod=guide']
- def parse(self, response):
- selectors = response.xpath('//*[@id="threadlist"]/div[2]/table/tbody')
- for i in selectors:
- item=FishcItem()
- item['name']=i.xpath('./tr/th/a/text()').get()
- item['type']=i.xpath('./tr/td[2]/a/text()').get()
- item['writer']=i.xpath('./tr/td[3]/cite/a/text()').get()
- item['time']=i.xpath('./tr/td[3]/em/span').xpath('string(.)').get().replace('\xa0','')
- item['views']=i.xpath('./tr/td[4]/a/text()').get()
- yield item
复制代码
item文件
- import scrapy
- class FishcItem(scrapy.Item):
- name=scrapy.Field()
- type=scrapy.Field()
- writer=scrapy.Field()
- time=scrapy.Field()
- views=scrapy.Field()
复制代码
管道文件1 #这里我是使用pymysql存入数据库的,没有mysql的自己安装哦
没有pymysql的也可以使用下面的一个管道,是存入csv文件的
- import pymysql
- class FishcPipeline(object):
- def __init__(self):
- self.db = pymysql.connect(host='localhost', user='root', passwd='123456', db='zhuaba')
- self.cursor = self.db.cursor()
- self.cursor.execute("delete from fishc")
- self.db.commit()
- def process_item(self, item, spider):
- insert_sql="insert into fishc(name,type,writer,time,views) values(%s,%s,%s,%s,%s)"
- data = {
- 'name' : item['name'],
- 'type' : item['type'],
- 'writer' : item['writer'],
- 'time' : item['time'],
- 'views' : item['views']
- }
- # name = pymysql.escape_string(data['name'])
- try:
- self.cursor.execute(insert_sql,(data['name'],data['type'],data['writer'],data['time'],data['views']))
- self.db.commit()
- except Exception as e:
- print('问题数据跳过!.......', e)
- self.db.rollback()
- return item
- def close_spider(self, spider):
- self.cursor.close()
- self.db.close()
复制代码
管道文件2 #存入入csv文件 这个要有csv 没有的也请安装下。
- import csv
- class FishcPipeline(object):
- def __init__(self):
- self.file = open('fishc.csv', 'w', newline='')
- self.csvwriter = csv.writer(self.file)
- self.csvwriter.writerow(['name', 'type', 'writer', 'time','views'])
- def process_item(self, item, spider):
- self.csvwriter.writerow([item['name'], item['type'],
- item['writer'], item['time'],item['views']])
- return item
- def close_spider(self, spider):
- self.file.close()
复制代码
最后提醒一下everbody 记得把setting文件里的爬虫协议改成false
并且打开管道
爬虫协议
打开管道
且看结果
存入数据库
mysql
存入csv文件
csv文件
源码我也放上来了,可以自己下过去瞅瞅。
因为是爬fishc.com的 我怕
fishc.zip
(11.31 KB, 下载次数: 29)
兄弟们悠着点,我怕帖子被甲鱼删了
请别瞎搞
不懂就评论问 |
评分
-
查看全部评分
|