Scrapy请求不会产生完整的HTML,但是Requests库却可以

时间:2019-08-05 13:35:08

标签: python web web-scraping scrapy

我正在构建一个crawl.spider来从以下网站(https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/1/00101.htm)抓取法律法规数据。我旨在提取法规文本,该法规文本包含在以下XPath [// div [@class ='first'] / p / text()]中。此路径应提供法规文本。

我所有的抓取请求都产生不完整的html响应,因此当我搜索相关的xpath查询时,它会产生一个空列表。但是,当我使用请求库时,html会正确下载。

我已在线使用XPath测试器验证了我的xpath查询应该产生所需的内容。使用scrapy shell,我在浏览器中查看了来自scrapy的响应对象-看起来就像在本地浏览时一样。我曾尝试为BeautifulSoup和Selenium启用中间件,但两者似乎都没有用。

这是我的爬行蜘蛛

class AZspider(CrawlSpider):
    name = "arizona"
    start_urls = [
        "https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/1/00101.htm",
    ]

    rule = (Rule(LinkExtractor(restrict_xpaths="//div[@class = 'article']"), callback="parse_stats_az", follow=True),)
    def parse_stats_az(self, response):
        statutes = response.xpath("//div[@class = 'first']/p")
        yield{
        "statutes":statutes
        }

这是成功生成正确响应对象的代码

az_leg = requests.get("https://www.azleg.gov/viewdocument/?docName=https://www.azleg.gov/ars/1/00101.htm")

0 个答案:

没有答案