wget在&符号(&)结束并在此之后跳过eveything

时间:2015-07-14 07:12:35

标签: python web-scraping web-crawler wget

wget在&符号之后跳过所有内容(&)我试图逃避\&但它无法正常工作

代码:

import threading
import urllib.request
import os
import re
import time
import json
import sys

def take():
    a = ["https://itunes.apple.com/us/genre/ios-games-action/id7001?mt=8&letter=A","https://itunes.apple.com/us/genre/ios-games-action/id7001?mt=8&letter=B"]
    for url_file in a:
        url_file = re.sub(r'\&','\&',url_file)
        data = os.popen('wget -qO- %s'% url_file).read()
        if re.search(r'(?mis)paginate\-more\">next',data):
            print ("hi")


take()

这应打印"hi"

但是因为wget跳过了&这是空白输出。

怎么能让这个工作?

2 个答案:

答案 0 :(得分:1)

你面临的问题是&在shell中有一个特殊的含义(你通过popen调用一个shell):那就是在左边的工作背景&符号。

要绕过这一点,你必须转义特殊字符,或在URL周围使用引号:

 data = os.popen('wget -qO- "%s"' % url_file).read()

答案 1 :(得分:0)

您的代码正在为我工​​作。我在Linux上使用python 2.6.x.你能提一下你正在使用哪个python verison吗?你在运行Windows / Linux吗?

输出

hi
hi

我看到你已经逃过了'&'在你的来源。