本文实例讲述了Python爬虫框架Scrapy基本用法。分享给大家供大家参考,具体如下:
Xpath
<html> <head> <title>标题</title> </head> <body> <h2>二级标题</h2> <p>爬虫1</p> <p>爬虫2</p> </body> </html>
在上述html代码中,我要获取h2的内容,我们可以使用以下代码进行获取:
info = response.xpath("/html/body/h2/text()")
可以看出/html/body/h2为内容的层次结构,text()则是获取h2标签的内容。//p获取所有p标签。获取带具体属性的标签://标签[@属性="属性值"]
<div class="hide"></div>
获取class为hide的div标签
div[@class="hide"]
再比如,我们在谷歌Chrome浏览器上的Console界面使用$x['//h2']命令获取页面中的h2元素信息:
xmlfeed模板
创建一个xmlfeed模板的爬虫
scrapy genspider -t xmlfeed abc iqianyue.com
核心代码:
from scrapy.spiders import XMLFeedSpider
class AbcSpider(XMLFeedSpider):
name = 'abc'
start_urls = ['http://yum.iqianyue.com/weisuenbook/pyspd/part12/test.xml']
iterator = 'iternodes' # 迭代器,默认为iternodes,是一个基于正则表达式的高性能迭代器。除了iternodes,还有“html”和“xml”
itertag = 'person' # 设置从哪个节点(标签)开始迭代
# parse_node会在节点与提供的标签名相符时自动调用
def parse_node(self, response, selector):
i = {}
xpath = "/person/email/text()"
info = selector.xpath(xpath).extract()
print(info)
return i
csvfeed模板
创建一个csvfeed模板的爬虫
scrapy genspider -t csvfeed csvspider iqianyue.com
核心代码
from scrapy.spiders import CSVFeedSpider
class CsvspiderSpider(CSVFeedSpider):
name = 'csvspider'
allowed_domains = ['iqianyue.com']
start_urls = ['http://yum.iqianyue.com/weisuenbook/pyspd/part12/mydata.csv']
# headers 主要存放csv文件中包含的用于提取字段的信息列表
headers = ['name', 'sex', 'addr', 'email']
# delimiter 字段之间的间隔
delimiter = ','
def parse_row(self, response, row):
i = {}
name = row["name"]
sex = row["sex"]
addr = row["addr"]
email = row["email"]
print(name,sex,addr,email)
#i['url'] = row['url']
#i['name'] = row['name']
#i['description'] = row['description']
return i
crawlfeed模板
创建一个crawlfeed模板的爬虫
scrapy genspider -t crawlfeed crawlspider sohu.com
核心代码
class CrawlspiderSpider(CrawlSpider):
name = 'crawlspider'
allowed_domains = ['sohu.com']
start_urls = ['http://sohu.com/']
rules = (
Rule(LinkExtractor(allow=r'Items/'), callback='parse_item', follow=True),
)
def parse_item(self, response):
i = {}
#i['domain_id'] = response.xpath('//input[@id="sid"]/@value').extract()
#i['name'] = response.xpath('//div[@id="name"]').extract()
#i['description'] = response.xpath('//div[@id="description"]').extract()
return i
上面代码rules部分中的LinkExtractor为连接提取器。
LinkExtractor中对应的参数及含义
更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]
