我打开这个链接"http://www.amazon.com/s?rh=n: 1"与urllib2和我试图获取下一页链接(href="/s/ref=lp_1_pg_2?rh=n: 283155, n:!1000, n: 1
尝试
import urllib2
from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
href = []
def handle_starttag(self, tag, attrs):
if tag == "a":
for attr in attrs:
if attr[0] == "href" and 'page' in attr[1] and 'rh' in attr[1]:
self.href.append(attr[1])
def _get(url):
response = urllib2.urlopen(url)
html = response.read()
parser = MyHTMLParser()
parser.feed(html.decode('utf-8'))
href = parser.href
print href
_get('http://www.amazon.com/s?rh=n%3A1')
它这样做是因为你没有标题。我试过:
from mechanize import Browser
from bs4 import BeautifulSoup
browser = Browser()
html_page = browser.open("http://www.amazon.com/s?rh=n%3A1")
soup = BeautifulSoup(html_page)
link = soup.find("a", {"title" : "Next Page"})
print link
输出:
<a title="Next Page" id="pagnNextLink" class="pagnNext" href="/s?rh=n%3A1&page=2">
<span id="pagnNextString">Next Page</span>
<span class="srSprite pagnNextArrow"></span>
</a>
然后我添加了标题:
from mechanize import Browser
from bs4 import BeautifulSoup
browser = Browser()
browser.addheaders = [('User-agent', 'Mozilla/5.0\
(Windows NT 6.2; WOW64) AppleWebKit/537.11 (KHTML, like Gecko)\
Chrome/23.0.1271.97 Safari/537.11')]
html_page = browser.open("http://www.amazon.com/s?rh=n%3A1")
soup = BeautifulSoup(html_page)
link = soup.find("a", {"title" : "Next Page"})
print link
输出:
<a title="Next Page" id="pagnNextLink" class="pagnNext" href="/s/ref=lp_1_pg_2/177-4872792-4084836?rh=n%3A283155%2Cn%3A%211000%2Cn%3A1&page=2&ie=UTF8&qid=1376771097">
<span id="pagnNextString">Next Page</span>
<span class="srSprite pagnNextArrow"></span>
</a>
所以只需像这样添加标题信息
例子:
from bs4 import BeautifulSoup
import urllib2
req = urllib2.Request("http://www.amazon.com/s?rh=n%3A1")
req.add_header('User-agent', 'Mozilla/5.0\
(Windows NT 6.2; WOW64) AppleWebKit/537.11 (KHTML, like Gecko)\
Chrome/23.0.1271.97 Safari/537.11')
html_page = urllib2.urlopen(req)
if html_page.getcode() == 200:
soup = BeautifulSoup(html_page)
link = soup.find("a", {"title" : "Next Page"})
print link['href']
else:
print "Error loading page"
输出:
/s/ref=lp_1_pg_2/176-2670743-2970243?rh=n%3A283155%2Cn%3A%211000%2Cn%3A1&page=2&ie=UTF8&qid=1376771750
我正在尝试使用BeautifulSoup转换HTML文本块。以下是一个示例: 我试着做了这样的事情: ...但是这样我的span元素总是在新行上。这当然是一个简单的例子。有没有办法在超文本标记语言页面中获取文本,就像它在浏览器中呈现的方式一样(不需要css规则,只是div、spans、li等元素呈现的常规方式)在Python中?
我有一个docx文件,带有Calibri Light的Heading1样式(每隔一个文本也使用Calibri Light)。转换为html后,每个文本都是Calibri Light(正确),但当我打开html文件时,Heading1样式的文本是Times New Roman。(原因:html文件内部没有为Heading1样式设置字体系列) 当我打开docx文件并检查Heading1样式的字体时,它
我想让我的段落正确地显示出来。 段落示例: Lorem ipsum dolor坐在这里,奉献给我们。拍卖商,拍卖商,拍卖商。整数nec别名urna,一个微调猫。nunc mi quam,简历pharetra quis,dapibus等。二重奏等精英和大人物。莫尔比怀疑一个多洛坐在一起。nunc aliquam, eros molestie eeffitur faucibus, orci diam
对于上面的html内容,我如何使用Jsoup解析并获取文本 当我使用 我得到了这样的东西
我是新来的。我想解析html,但问题是我们必须在中指定的URL,我将在运行时从其他页面响应此URL。有没有办法将收到的网址传递到中?我读过这样的东西: 但是我不知道如何使用它。我很想知道是否有其他方法比jsoup更好。
我试图在HTML的pre标签中包装文本,但它不起作用。我使用下面的CSS作为我的标签。 我从如何在pre标记中换行文本? 我已添加