Python 爬虫案例(一)

411次阅读
没有评论
Python

Python 爬虫案例(一)

对于初学爬虫的人来说,看些案例是非常有帮助的,该篇用PyCharm为工具,以scrapy为框架进行了一次简单的爬取,爬取的网站是http://www.wicomicocounty.org/bids.aspx,爬取的目标就是获取标书的名字,开标日期和截止日期等。

首先打开端口,创建名为CSDN的project, 在端口输入
scrapy startproject CSDN 回车
cd CSDN 回车
scrapy genspider wicomico wicomicocounty.org 回车

之后我们打开pycharm中CSDN所在的位置,将这个项目点开,会发现一个items.py文件,点开,我们先在items中将要封装的数据列出,同时这也是我们将要获取的数据:

import scrapy

class CsdnItem(scrapy.Item): title = scrapy.Field() #标书名称 expiredate = scrapy.Field() #标书截止日期 issuedate = scrapy.Field() #标书开始日期 web_url = scrapy.Field() #网页链接 bid_url = scrapy.Field() #标书链接

接下来我们找到wicomico.py这个爬虫文件,开始编写爬虫的代码:

import scrapy from scrapy.http import Request from CSDN.items import CsdnItem

class wicomicoSpider(scrapy.Spider): name = 'wicomico' start_urls = ['http://www.wicomicocounty.org/bids.aspx'] domain = 'http://www.wicomicocounty.org/'

def parse(self, response): #用的谷歌浏览器,右键检查,利用xpath定位到bid所在的区域 result_list = response.xpath("//*[@id='modulecontent']//table//div[5]//tr") #写一个for循环,对每条bid进行处理 for result in result_list: #导入item item = CsdnItem() #定位出标书名称所在的位置 title1 = result.xpath("./td[2]/span/a/text()").extract_first() #可以注意到定位的地方不是都有title存在,所以做一个判断 if title1: #将title封装进item里边 item['title'] = title1 item["web_url"] = self.start_urls[0] #定位出标书的链接 url1 = result.xpath("./td[2]/span/a/@href").extract_first() urls = self.domain + url1 item['bid_url'] = urls #将成功获取的标书链接再进行分析,提取数据,进入parse_content函数中 yield Request(urls, callback=self.parse_content, meta={'item': item})

def parse_content(self, response): #将item传到该函数中使用 item = response.meta['item'] #定位标书的开始日期 issuedate = response.xpath("//span[contains(text(),'Publication Date/Time:')]/../../following-sibling::tr[1]/td/span/text()").extract_first() item['issuedate'] = issuedate #定位标书的截止日期 expireDate = response.xpath("//span[contains(text(),'Closing Date/Time:')]/../../following-sibling::tr[1]/td/span/text()").extract_first() item['expiredate'] = expireDate yield item

最后我们点开settings.py这个文件,找到ROBOTSTXT_OBEY这一行,改动一下代码,如下:
ROBOTSTXT_OBEY = False

以上代码就算完成了,已经是一个简单的爬虫,我们在pycharm下方点开terminal,输入:
scrapy crawl wicomico -o wicomico.csv
运行结束后在左侧边框栏会出现wicomico.csv的文件,点开即可看到我们爬取的结果!

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-10-28发表,共计2094字。
新手QQ群:570568346,欢迎进群讨论 Python51学习