下载网页并使用 python 搜索文本

Downloading a web page and searching a text with python

我正在尝试从网站上抓取特定文本。因为我是Python的新人,我发现很难用一个脚本来抓取文本,所以我先用了这段代码:

import urllib
import requests
from bs4 import BeautifulSoup
htmltext = urllib.urlopen("https://io.winmasters.com/Feeds/api/event /282576?lang=el").read()

data = htmltext
soup =  BeautifulSoup(data)
f = open('/Desktop/text.txt', 'w')
f.write(data)
f.close()`

接下来我将尝试编写一个脚本来搜索文本并打印特定单词。

with open("/Desktop/text.txt") as openfile:
    for line in openfile:
        for part in line.split():
            if "odds=" in part:
                print part

但搜索脚本没有 return 我正在搜索的文本。有什么建议吗?

如果您只是想要与 odds 键关联的值,而根本没有任何上下文,您可以简单地执行以下操作:

import urllib
from json import loads # JSON parser

jsontext = urllib.urlopen("https://io.winmasters.com/Feeds/api/event/282576?lang=el").read()
data = loads(jsontext) # Parse the JSON

odds = [[b['odds'] for b in a['children']] for a in data['children']]

嵌套列表理解利用了数据的结构。使用数据结构的一个优点是您可以毫不费力地进行非常丰富的分析。如果除了赔率之外您还需要其他信息,那么这可能会更好地实现为嵌套 for-循环。

怎么样:

import sys
from bs4 import Beautiful Soup
import mechanize

def viewPage(url):
    browser=mechanize.Browser()
    browser.set_handle_robots(False)
    browser.addheaders=[('user-agent','MozillaMozilla/5.0')]
    page=browser.open(url)
    source_code=page.read()
    soup=BeautifulSoup(source_code)
    info=soup.findAll("insert what you want to locate")
    print(info)
viewPage("www.xkcd.com")

我有一个程序,当你选择一个网页时,它会读取所有链接,随机选择一个并转到它,做同样的事情。它基本上是在互联网上爬行。上面的代码是修改后的摘录。