页面爬取小知识点

1.extract()获取的是列表,后面加上索引取得是列表中某个值
#li.xpath('a/@href').extract()返回结果是列表
first_url = 'http://jbk.39.net' + li.xpath('a/@href').extract()[0]
2.如何获取到整个页面的标签
#获取到的是html页面
cause_link = response.xpath("//*[@class='intro']").extract()
# #获取到的是html页面
# cause_link = response.xpath("//*[@class='intro']").extract()
# cause_link2 = response.xpath("//*[@class='info']").extract()
# cause_link3 = response.xpath("//*[@class='art-box']").extract()
 # 需要获取文字
cause_link2 = response.xpath('/html/body/section/div[3]/div[1]/div/div[2]/p/text()').extract()
3.如何将列表转换为字符串
# 获取病因中的内容
item['cause'] = response.xpath('/html/body/section/div[3]/div[1]/div/div[2]/p/text()').extract()
# 将获取到的对白内容转换为字符串
str1 = ''.join(item['cause'])  # convert list to string
# 同样的将单个单引号转换为'',单引号在mysql执行时容易出错
item['cause'] = str1.replace("'", "''")
4.Request
def parse(self, response):
    li_list = response.xpath('//*[@id="mainBox"]/main/div[2]/div')

    for xq in li_list:
        #通过XymcsdnItem创建一个新的item
        item = XymcsdnItem()
        item_list = xq.xpath('h4/a/text()').extract()
        #有时获取的链接是空的
        if len(item_list) > 0:
            item['title'] = item_list[1].strip()
                url = xq.xpath('h4/a/@href').extract()[0]
           #通过request或者Scrapy.request将url和item传到下一级函数中,callback来调用下一级函数
            yield Request(url, meta={'item': item}, callback = self.parse_detail)
item = response.meta['item']  # get the item from before (Request)
# item = Jb39Item()# use function to create a new item
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值