{"push_id":818329266,"size":3,"distinct_size":3,"ref":"refs/heads/master","head":"4e9a43c228835ce25578e97790eef2a10039d48f","before":"91cbf974150309e8b0401e7d0f5b0c4757bf260f","commits":[{"sha":"4e66955411a546f9b9a621ce06a709e3b2fbc4fc","author":{"email":"5027b7a3c00732335d505d46eb5adf0b3fb9aa74@gmail.com","name":"Hoat Le"},"message":"fix ValueError: Invalid XPath: //div/[id=\"not-exists\"]/text() on selectors.rst\n\n>>> response.xpath('//div/[id=\"not-exists\"]/text()').extract_first() is None\r\nTraceback (most recent call last):\r\n  File \"<console>\", line 1, in <module>\r\n  File \"/home/vagrant/.virtualenvs/scrapy/lib/python2.7/site-packages/scrapy/http/response/text.py\", line 109, in xpath\r\n    return self.selector.xpath(query)\r\n  File \"/home/vagrant/.virtualenvs/scrapy/lib/python2.7/site-packages/scrapy/selector/unified.py\", line 100, in xpath\r\n    raise ValueError(msg if six.PY3 else msg.encode(\"unicode_escape\"))\r\nValueError: Invalid XPath: //div/[id=\"not-exists\"]/text()","distinct":true,"url":"https://api.github.com/repos/scrapy/scrapy/commits/4e66955411a546f9b9a621ce06a709e3b2fbc4fc"},{"sha":"2869cf8ddea73761cab148283ce07ab14baa57b4","author":{"email":"73a84321d28e12d05e109b34774473ff09eb26f1@teracy.com","name":"hoatle"},"message":"fix another invalid xpath error","distinct":true,"url":"https://api.github.com/repos/scrapy/scrapy/commits/2869cf8ddea73761cab148283ce07ab14baa57b4"},{"sha":"4e9a43c228835ce25578e97790eef2a10039d48f","author":{"email":"35ac0fc0710d6b9527ffbf8c22e93c36af45957e@gmail.com","name":"Mikhail Korobov"},"message":"Merge pull request #1532 from hoatle/docs-fixes\n\nDocs fixes","distinct":true,"url":"https://api.github.com/repos/scrapy/scrapy/commits/4e9a43c228835ce25578e97790eef2a10039d48f"}]}