2012-02-09 25 views
5
<field name="http.user_agent" showname="User-Agent: CORE/6.506.4.1 OpenCORE/2.02 (Linux;Android 2.2)\r\n" size="62" pos="542" show="CORE/6.506.4.1 OpenCORE/2.02 (Linux;Android 2.2)" value="557365722d4167656e743a20434f52452f362e3530362e342e31204f70656e434f52452f322e303220284c696e75783b416e64726f696420322e32290d0a"/> 

<field name="http.user_agent" showname="User-Agent: HTC Streaming Player htc_wwe/1.0/htc_vivo/2.3.5\r\n" size="67" pos="570" show="HTC Streaming Player htc_wwe/1.0/htc_vivo/2.3.5" value="557365722d4167656e743a204854432053747265616d696e6720506c61796572206874635f777765202f20312e30202f206874635f7669766f202f20322e332e350d0a"/> 

<field name="http.user_agent" showname="User-Agent: AppleCoreMedia/1.0.0.8C148 (iPad; U; CPU OS 4_2_1 like Mac OS X; sv_se)\r\n" size="85" pos="639" show="AppleCoreMedia/1.0.0.8C148 (iPad; U; CPU OS 4_2_1 like Mac OS X; sv_se)" value="557365722d4167656e743a204170706c65436f72654d656469612f312e302e302e38433134382028695061643b20553b20435055204f5320345f325f31206c696b65204d6163204f5320583b2073765f7365290d0a"/> 

Mẫu của các url tôi đã có được liệt kê ở trên. Tôi tự hỏi nếu có bất kỳ mô-đun trong Python mà tôi có thể sử dụng để phân tích cú pháp tác nhân người dùng. Tôi muốn lấy kết quả từ những mẫu này như:cách phân tích cú pháp chuỗi tác nhân người dùng? python

Android 
HTC Streaming player 
ipad 

và nếu đó là người dùng PC, tôi muốn có loại trình duyệt web.

Trả lời

11

Có một thư viện gọi httpagentparser cho rằng:

import httpagentparser 
>>> s = "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.307.11 Safari/532.9" 
>>> print httpagentparser.simple_detect(s) 
('Linux', 'Chrome 5.0.307.11') 
>>> print httpagentparser.detect(s) 
{'os': {'name': 'Linux'}, 
'browser': {'version': '5.0.307.11', 'name': 'Chrome'}} 
+2

Xem [câu hỏi SO này] (http://stackoverflow.com/questions/927552/parsing-http-user-agent-string) đã thúc đẩy việc viết thư viện và đề xuất các giải pháp thay thế. –

Các vấn đề liên quan