python - scrapy 抓不到起始网页内容
黄舟
黄舟 2017-04-18 09:59:23
0
3
339

初学使用scrapy,按照教程建了很小一个例子,还没有到用pipeline之类的地步,只想看看能不能爬东西下来。代码如下:

spider.py:

from scrapy.spider import Spider 

class newsSpider(Spider):
    name = "News"
    allowed_domains = ["people.com.cn"]
     start_urls = ["http://people.com.cn"]

    def parse(self,response):
        print response.url
        filename = response.url.split('/')[-2]
        print filename
        open(filename,'w').write(response.body)

items.py:

import scrapy

class TutorialItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    pass
class newsItem(Item):
    title = Field()
    link = Field()
    desc = Field()

但是发现几个新闻网站都爬取失败了,包括:
people.com.cn
news.163.com
ifeng.com
以上几个都会报错:

 ERROR: Spider error processing <GET http://.....com> (referer: None)

但是,我爬tieba.baidu.com和例子中的"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"是可以爬下来东西的,也就是response是有内容的,也没有error。

我从以下几个方面改了改:
1.绕过robots.txt,在setting里把ROBOTSTXT_OBEY = False
2.禁用/启用cookie,COOKIES_ENABLED = False/True
3.设置USER_AGENT,USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
`

结果并没有改变,那些新闻网站还是起始网页就爬不下来东西,请问怎么办?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답(3)
迷茫

안녕하세요. 이 문제를 해결한 방법은 다음과 같습니다.

으아악

셸 모드를 입력한 후 다음을 입력하세요.

으아악

안의 내용이 비어있는 것을 발견했는데, 이때 URL을 분할할 때 실수를 했다고 판단하여 다음 코드를 시도했습니다.

으아악

다음 출력을 찾았습니다.

그래서 원본 포스터 뒤에 있는 이유는 파일명이 존재하지 않아 문서가 생성되지 않기 때문입니다.
해 보세요.

PHPzhong

터미널에서 테스트하고 사용해 보세요
http://scrapy-chs.readthedocs...

Peter_Zhu

scrapy 문서를 주의 깊게 읽어보셨는지 모르겠습니다
http://scrapy-chs.readthedocs...

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!