首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能用Python请求库抓取网页

不能用Python请求库抓取网页
EN

Stack Overflow用户
提问于 2015-04-17 20:08:58
回答 2查看 1.4K关注 0票数 2

我试图使用python中的请求从网页(下面的链接)获取一些信息;但是,当我通过python的请求库连接时,我在浏览器中看到的HTML数据似乎并不存在。xpath查询都不返回任何信息。我可以使用其他网站的请求,如亚马逊(下面的网站实际上是由亚马逊拥有,但我似乎不能从它刮任何信息)。

代码语言:javascript
复制
url = 'http://www.myhabit.com/#page=d&dept=men&asin=B00R5TK3SS&cAsin=B00DNNZIIK&qid=aps-0QRWKNQG094M3PZKX5ST-1429238272673&sindex=0&discovery=search&ref=qd_men_sr_1_0'
user_agent = {'User-agent': 'Mozilla/5.0'} 
page = requests.get(url, headers=user_agent)
tree = html.fromstring(page.text)
query = tree.xpath("//span[@id=ourPrice]/text()")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-17 20:42:16

元素是使用javascript生成的,您可以使用获取源代码,实现无头浏览,并将其与幻影相结合。

代码语言:javascript
复制
url = 'http://www.myhabit.com/#page=d&dept=men&asin=B00R5TK3SS&cAsin=B00DNNZIIK&qid=aps-0QRWKNQG094M3PZKX5ST-1429238272673&sindex=0&discovery=search&ref=qd_men_sr_1_0'

from selenium import webdriver

browser = webdriver.PhantomJS()
browser.get(url)
_html = browser.page_source

from bs4 import BeautifulSoup

print(BeautifulSoup(_html).find("span",{"id":"ourPrice"}).text)
$50
票数 3
EN

Stack Overflow用户

发布于 2016-02-11 12:20:18

下面是代码,我是如何从一个站点中删除一个表的。在那个站点中,他们没有在表中定义id或类,所以您不需要放置任何内容。如果id或类意味着只使用html.xpath('//table@id=id_val/tr')而不是html.xpath('//table/tr')

代码语言:javascript
复制
from lxml import etree
import urllib
web = urllib.urlopen("http://www.yourpage.com/")
html = etree.HTML(web.read())
tr_nodes = html.xpath('//table/tr')
td_content = [tr.xpath('td') for tr in tr_nodes  if [td.text for td in tr.xpath('td')][2] == 'Chennai' or [td.text for td in tr.xpath('td')][2] == 'Across India'  or 'Chennai' in [td.text for td in tr.xpath('td')][2].split('/') ]
main_list = []
for i in td_content:
    if i[5].text == 'Freshers' or  'Freshers' in i[5].text.split('/') or  '0' in i[5].text.split(' '):
       sub_list = [td.text for td in i]
       sub_list.insert(6,'http://yourpage.com/%s'%i[6].xpath('a')[0].get('href'))
       main_list.append(sub_list)
print 'main_list',main_list
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29708484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档