网页能通过浏览器正常打开,但是scrapy shell+网址 打开报错

网页能通过浏览器正常打开,但是scrapy shell+网址 打开报错
http://www.landchina.com/Desk...
图片描述

但是scrapy shell后,view response后得到
图片描述

我也试着加入-s USER_AGENT='Mozilla/5.0' 但是没效果
请问是怎么回事?

阅读 4.7k
1 个回答

关于scrapy无法下载html内容的问题

会不会是scrapy默认开启了遵守Robots.txt 导致的?尝试在settings.py中改一下.

在我这是默认打开的, 内容是如下:

Obey robots.txt rules
ROBOTSTXT_OBEY = True
我这里测试, 发现 是否 改变robots为False, 同时 是否 增加用户代理, 内容都可以被成功下载.

关于xpath的问题

的确存在这个问题, 可能是小几率的xpath失效的问题 -> (我猜测是这个问题), 因为我尝试过在浏览器中使用我写的xpath发现是可以获取的, 但是scrapy中并不行.

原文章: "在使用chrome等浏览器自带的提取extract xpath路径的时候, 通常现在的浏览器都会对html文本进行一定的规范化,
导致明明在浏览器中提取正确, 却在程序中返回错误的结果."

我尝试过使用相对路径, 发现也不行, 我建议你这里使用regex正则表达式来提取.
我写的正则不是特别简洁, 但是可以提取表格内的所有内容, 以列表(二维数组)形式被存下来.

regex = re.compile(r"([:\u4e00-\u9fa50-9\(\)]+)</td>\s*[<td colspan=\"5\">]*[<td>]*([,\[\]\.0-9\u4e00-\u9fa5]+)</td>")

共找到 8 处匹配:(每处匹配的都是内容, 不包含html标签.)
宗地编号</td>    <td>唐国土丰南告字[2018]2号公告地块</td>
地块位置</td>    <td>丰南区丰南镇杨贵庄村西</td>
土地用途</td>    <td>其他普通商品住房用地</td>
土地面积(公顷)</td>    <td>0.676247</td>
出让年限</td>    <td>70年</td>
成交价(万元)</td>    <td>508</td>
受让单位</td>    <td colspan="5">北京睿博大正投资有限公司</td>
土地使用条件:</td>    <td colspan="5">该宗地规划用途为居住用地,使用年限为住宅70年商业40年</td>              


撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题