-1

我写了一个 bash 脚本来下载一些网页的内容。为了让它工作,我需要捕获一个 cookie,然后发送一些特殊的数据请求,然后我就可以找到正确的链接来下载它的内容。我的脚本如下所示:

#!/bin/bash  
for ((i=1;i<=$NB;++i)); do  
cookie=`curl -I "http://example.com/index.php" | grep Set-Cookie: | awk '{print $2}' |         cut -d ';' -f 1\`  # cath a cookie  
curl -b $cookie --data "a_piece_of_data" "http://example.com/index.php"  
curl -b $cookie "http://example.com/proper_link_$i" &> $i.html  
sleep 3  
done

因为我需要稍后解析它以摆脱所有 html/xhtml 标签(只需提取纯文本),然后将其转换为 XML,我发现 Python 和它的 lib 将非常适合这样做。
所以我问你提示如何将我的脚本重写为 python?
到目前为止,这是我想出的,但它仍然远离我的 bash 示例:

import mechanize
import urllib2
import BeautifulSoup
import lxml

request = mechanize.Request("http://example.com/index.php")
response = mechanize.urlopen(request)
cj = mechanize.CookieJar()
cj.extract_cookies(response, request)
print cj

任何帮助/提示表示赞赏。

4

1 回答 1

2

我会使用请求库

import requests
session = requests.session()
r = session.get('http://example.com/index.php')
# session.cookies now contains any relevant cookies which will be
# used in following requests of the session
page = session.get('http://example.com/your_other_page')

然后用于lxml解析您的 HTML:

import lxml.html
page = lxml.html.fromstring(page.text)
于 2012-10-06T11:25:40.063 回答