我的Python Scrapy无法删除“关键字”内容

时间:2016-07-26 12:34:05

标签: python scrapy web-crawler

我无法搜索“关键字”内容。 >“中< 我尝试了很多方法,但仍然失败了。

我已成功检索到其他内容,但仍无法获取“关键字”内容。

任何人都可以帮忙解决这个问题吗? 关键字内容位于“#keyword_table a”, 或XPath“// * [@ id =”keyword_table“] / tbody / tr / td [2] / a”

关键字内容的图片:

enter image description here

我的代码:

import scrapy 
from bs4 import BeautifulSoup
from digitimes.items import DigitimesItem


class digitimesCrawler(scrapy.Spider):
    name = 'digitimes'
    start_urls = ["http://www.digitimes.com.tw/tw/dt/n/shwnws.asp?id=435000"]


def parse(self, response):
    soup = BeautifulSoup(response.body,'html.parser')
    soupXml = BeautifulSoup(response.body, "lxml")
    simpleList = []

    item = DigitimesItem()

    timeSel=soup.select('.insubject .small')   
    tmpTime = timeSel[0].text
    time = tmpTime[:10]
    item['time'] = time #處理完時間啦
    print(time)

    titleSel = soup.select('title')
    title = titleSel[0].text
    item['title'] = title #處理完時間啦
    print(title)

    #================== To Resolve ==================

    keywordOutput="" 
    for k in soupXml.select('#keyword_table a'):
        for key in k:
            keywordOutput = keywordOutput + key + " "
    item['keyword'] = keywordOutput 
    print(keywordOutput)

    #================== To Resolve ==================



    categoryOutput=""
    for m in soup.select('#sitemaptable tr td a'):
        for cate in m:
            if(cate!="DIGITIMES"):
                categoryOutput = categoryOutput + cate + " "
    item['cate'] = categoryOutput  
    print(categoryOutput) 

    simpleList.append(item)
    return simpleList

1 个答案:

答案 0 :(得分:0)

您是否有任何特殊原因使用BeautifulSoup而不是scrapy选择器?您的方法收到的响应已经充当scrapy选择器,可以执行xpath和css选择。

表中似乎有3个关键字。您可以使用xpath或css选择器选择它们:

response.css("#keyword_table a::text").extract()
# or with xpath
response.xpath("//*[@id='keyword_table']//a/text()").extract()
# both return
>>> [u'Sony', u'\u5f71\u50cf\u611f\u6e2c\u5668', u'\u80a1\u7968\u4ea4\u6613']