Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何让数据挖掘者在网页上进行特定搜索?_Python_Html_Web Scraping_Web Crawler_Lxml - Fatal编程技术网

Python 如何让数据挖掘者在网页上进行特定搜索?

Python 如何让数据挖掘者在网页上进行特定搜索?,python,html,web-scraping,web-crawler,lxml,Python,Html,Web Scraping,Web Crawler,Lxml,我是Python新手,正在尝试使用模式。我的目标是得到一个代码,在从IndoWordnet中查找输入单词后,它将为我提供输入单词的同义词。语言必须是孟加拉语。我已经有一个单词表了。但我不知道如何准确地,在模式的帮助下,我可以在网上搜索输入。我试过跟随。这没有多大帮助。我想从一个经过解析的网页开始,这就是我所做的。这也会给我们绝对的联系 from lxml.html import fromstring from urllib2 import urlopen def get_page(url) :

我是Python新手,正在尝试使用模式。我的目标是得到一个代码,在从IndoWordnet中查找输入单词后,它将为我提供输入单词的同义词。语言必须是孟加拉语。我已经有一个单词表了。但我不知道如何准确地,在模式的帮助下,我可以在网上搜索输入。我试过跟随。这没有多大帮助。我想从一个经过解析的网页开始,这就是我所做的。这也会给我们绝对的联系

from lxml.html import fromstring
from urllib2 import urlopen
def get_page(url) :
    html = urlopen(url).read()
    dom = fromstring(html)
    dom.make_links_absolute(url)
    return dom

dom = get_page('http://www.cfilt.iitb.ac.in/indowordnet/first?langno=3&queryword=%E0%A6%97%E0%A6%BE%E0%A6%A7%E0%A6%BE')

<Element html at 0x50b4840>
从lxml.html导入fromstring
从urllib2导入urlopen
def get_页面(url):
html=urlopen(url).read()
dom=fromstring(html)
dom.make_links_绝对(url)
返回dom
dom=获取页面('http://www.cfilt.iitb.ac.in/indowordnet/first?langno=3&queryword=%E0%A6%97%E0%A6%BE%E0%A6%A7%E0%A6%BE')

但在那之后我被卡住了,因为我不知道如何用模式进行特定的搜索。请提供帮助。

这比看起来要复杂一点,因为有一个AJAX请求获取您想要获取的数据,所以分两步进行:

  • 获取与您要查找的单词相对应的特殊
    sid
    值(它位于
    标签
    中,
    id
    属性等于
    sid
  • http://www.cfilt.iitb.ac.in/indowordnet/ajax/onto.jsp
    传递第一步抓取的
    sid
    。例如,查看它如何查找
    sid=4827
这是密码。它打印所有安托洛伊标签:

from lxml.html import parse
from urllib2 import urlopen

SID_URL = 'http://www.cfilt.iitb.ac.in/indowordnet/ajax/onto.jsp?sid=%s'

url = 'http://www.cfilt.iitb.ac.in/indowordnet/first?langno=3&queryword=%E0%A6%97%E0%A6%BE%E0%A6%A7%E0%A6%BE'
tree = parse(urlopen(url))

sid = tree.find('.//label[@id="sid"]').text

tree = parse(urlopen(SID_URL % sid))
for record in tree.xpath('//ontorecord'):
    print record.find('onto_label').text
UPD
(获取同义词):


@user3458145好的,对不起,有点误解了,因为我不懂印地语和孟加拉语。检查
UPD
部分-应该提供所有同义词。@user3458145我已经使用了chrome开发者工具->网络选项卡来查看AJAX调用的情况。这与python无关-大部分内容都与xpath和web抓取相关。如何获取“%s”部分?@user3458145
%s
sid
的占位符-请参阅我提供的代码:
sid=tree.find('.//label[@id=“sid”]”)。text
。可能是推得太多了,但是,有没有可能不必每次都输入它们的url就可以得到同义词呢?
from lxml.html import parse
from urllib2 import urlopen

url = 'http://www.cfilt.iitb.ac.in/indowordnet/first?langno=3&queryword=%E0%A6%97%E0%A6%BE%E0%A6%A7%E0%A6%BE'
tree = parse(urlopen(url))

for label in tree.xpath('.//label[@id="words"]/a'):
    print label.text